#include using namespace std; vector fact(int p) { vector res; for (int i = 2; i * i <= p; ++i) { res.push_back(i); while (p % i == 0) p /= i; } if (p > 1) res.push_back(p); return res; } long long modpow(long long b, long long x, long long mod) { long long res = 1; while (x) { if (x & 1) (res *= b) %= mod; (b *= b) %= mod; x >>= 1; } return res; } int x, v; vector res; int calc(int p, vector& mp) { int res = x * v, pr = x * v + 1; for (auto x : mp) { while (res % x == 0 && modpow(p, res / x, pr) == 1) res /= x; } return res; } void dfs(int now = 0, int par = 0); int main() { int t; cin >> t; while (t--) { cin >> v >> x; auto vec = fact(x * v); vector res; for (int i = 1; i <= x * v; ++i) if (modpow(i, x, x * v + 1) == 1) res.push_back(i); for (int i = 0; i < x; ++i) cout << res[i] << " \n"[i == x - 1]; } return 0; } void dfs(int now, int par) { if (now == x) { vector vec(x, 1); for (int i = 0; i < x; ++i) { long long sum = 0; for (int j = 0; j < x; ++j) sum += (vec[j] *= res[j]); if (sum % (v * x + 1) != (i == x - 1 ? x : 0)) return; } for (auto p : res) cout << p << " "; cout << endl; return; } int xv = x * v; for (int i = par + 1; i <= xv; ++i) { res[now] = i; dfs(now + 1, i); } }