#include using namespace std; typedef long long ll; typedef pair pii; typedef pair ppii; typedef pair pipi; typedef pair pll; typedef pair plpl; typedef tuple tl; ll mod=1000000007; ll inf=1000000000000000000; #define rep(i,m,n) for(int i=m;i=m;i--) ll lmax(ll a,ll b){ if(a>n>>p; vector v[n+1]; bool used[n+1]; fill(used,used+n+1,false); rep(i,2,n+1){ if(used[i]==false){ used[i]=true; for(int j=i+i;j<=n;j+=i){ used[j]=true; v[j].push_back(j-i); v[j-i].push_back(j); } } } fill(used,used+n+1,false); used[p]=true; queue q; q.push(p); int ans=0; while(q.size()>0){ int now=q.front();q.pop(); ans++; rep(i,0,v[now].size()){ int ne=v[now][i]; if(used[ne])continue; used[ne]=true; q.push(ne); } } cout<