#include using namespace std; #define ll long long #define rep(i,n) for(int (i)=0;(i)<(n);(i)++) #define repeat(i,s,n) for(int (i)=s; (i)<(n); (i)++) #define revrep(i,n) for(int (i)=(n)-1;i>=0; i--) void merge(int a, int b, vector>& uf) { if(a>b) { swap(a,b); } // a<=b for(auto& x : uf[a]) { uf[b].insert(x); } uf[a].clear(); } int main() { cin.tie(0); ios::sync_with_stdio(false); cout<::max_digits10); int n,p; cin>>n>>p; vector> uf(n+1); for(int x=1; x<=n; x++) uf[x].insert(x); for(int k=2; k