#include
//#include
#include
#include
#include
#include
#define MOD 1000000007
#define ll long long
using namespace std;
int n;
int arr1[100005];
int arr2[100005];
int memo[100005][2];
int dp (int at, int where){
if(at==n){
return 0;
}
if(memo[at][where] != -1) return memo[at][where];
int res=0;
if(where == 0 and at+1=arr1[at]){
res = max(res,dp(at+1,0)+1);
}
if(arr2[at+1]>=arr1[at]){
res = max(res,dp(at+1,1)+1);
}
}
else if(where == 1 and at+1=arr2[at]){
res = max(res,dp(at+1,1)+1);
}
if(arr1[at+1]>=arr2[at]){
res=max(res,dp(at+1,0)+1);
}
}
return memo[at][where] = res;
}
int main() {
cin >> n;
for(int i =0;i> arr1[i];
}
for(int i = 0;i> arr2[i];
}
memset(memo, -1, sizeof memo);
int res = 0;
for(int i= 0;i