#include #define msize 100000000 using namespace std; bool prime[msize]; //long long ar[1000000]={0}; void sieve() { long long i,j,s,k=-1; memset(prime,true,msize); prime[0]=prime[1]=false; //s=sqrt(200000); for(i=2;i*i<=msize;i++) { if(prime[i]==true) { for(j=i*i;j<=msize;j=j+i) { prime[j]=false; } } } // for(i=0;i<1000000;i++) // { if(prime[i]==true) // ar[++k]=i; //} } long long smallestdiv(long long x) {long long i,b; b=sqrt(x); for(i=2;i<=b;i++) { if(x%i==0 && prime[i]==true) return i; } return x; } long long longestSequence(vector a) { // Return the length of the longest possible sequence of moves. long long ans=0,i,x,y; for(i=0;i> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } long long result = longestSequence(a); cout << result << endl; return 0; }