//想定誤解法 //最小公倍数を使っていない #include #include #include #include "assert.h" #include #include #include #include using namespace std; #define MAX_N 100 #define MAX_K 1000 int dfs(vector< vector > &G, vector &visit, int pos){ visit[pos] = true; int res = 1; for(int i=0; i &v){ int n=v.size(); vector > G(n); for(int i=0; i visit(n,false); long long ans = 1; for(int i=0; i> N; assert(2<=N && N<=MAX_N); int K; cin >> K; assert(0<=K && K<=MAX_K); vector v(N); for(int i=0; i> x >> y; assert(1<=x && x<= N); assert(1<=y && y<= N); assert(x