#include
#include
//#include
using namespace std;
int n;
int ar[100005];
int ar_2[100005];
int dp[100005][2];
int rec(int pos, int side){
if(pos==n){
return 0;
}
if(dp[pos][side]!= -1){
return dp[pos][side];
}
int result=0;
if(pos + 1 < n) {
if(side==0){
if(ar[pos]<=ar[pos+1]){
result=max(result, rec(pos+1, 0) + 1) ;
}
if(ar[pos]<=ar_2[pos+1]){
result=max(result, rec(pos+1, 1) + 1);
}
}
if(side==1){
if(ar_2[pos]<=ar_2[pos+1]){
result=max(result, rec(pos+1, 1) + 1);
}
if(ar_2[pos]<=ar[pos+1]){
result=max(result, rec(pos+1, 0) + 1);
}
}
}
return dp[pos][side]=result;
}
int main()
{
ios_base::sync_with_stdio(false);
cin>>n;
for(int i=0; i>ar[i];
}
for(int i=0; i>ar_2[i];
}
multisetm;
memset(dp, -1, sizeof dp);
for(int i=0; i