#include #include #include using namespace std; int N; int A[3333],B[3333]; vectorD; int dp[3030][3030]; main() { cin>>N; for(int i=0;i<=N;i++)cin>>A[i]; for(int i=0;i<=N;i++)cin>>B[i]; for(int i=0;i>d;D.push_back(d); } sort(D.begin(),D.end()); reverse(D.begin(),D.end()); for(int i=0;i=D[i]) { dp[i+1][j+1]=max(dp[i+1][j+1],dp[i][j]+1); } else { dp[i+1][j]=max(dp[i+1][j],dp[i][j]); } } if(k=D[i]) { dp[i+1][j]=max(dp[i+1][j],dp[i][j]+1); } else { dp[i+1][j]=max(dp[i+1][j],dp[i][j]); } } } int ans=0; for(int i=0;i<=N;i++)for(int j=0;j<=N;j++)ans=max(ans,dp[i][j]); cout<