#include using namespace std; using ll = long long; bool chmin(auto &a, auto b) { return a > b ? a = b, 1 : 0; } bool chmax(auto &a, auto b) { return a < b ? a = b, 1 : 0; } void solve() { int N, L, R; cin >> N >> L >> R; vector pp, d{1, N}; int M = N; for (int i = 2; i * i <= N; ++i) { int p = 1; while (M % i == 0) { M /= i; p *= i; } if (p > 1) pp.emplace_back(p); if (N % i == 0) { d.emplace_back(i); d.emplace_back(N / i); } } if (M > 1) pp.emplace_back(M); sort(d.begin(), d.end()); d.erase(unique(d.begin(), d.end()), d.end()); vector> S(1 << pp.size()); for (int i = 0; i < d.size(); ++i) { if (d[i] < L || R < d[i]) continue; int mask = 0; for (int j = 0; j < pp.size(); ++j) mask += (d[i] % pp[j] == 0) << j; if (S[mask].size() < 3) S[mask].emplace_back(d[i]); } for (int i = (1 << pp.size()) - 1; i > 0; --i) { for (int j = i; j > 0; ) { j = (j - 1) & i; // cerr << i << ' ' << j << '\n'; for (int k = 0; k < S[i].size() && S[j].size() < 3; ++k) { if (S[j].size() && (S[i][k] == S[j][0] || S[i][k] == S[j].back())) continue; S[j].emplace_back(S[i][k]); } // if (j == 0) break; } } // for (int i = 0; i < pp.size(); ++i) cerr << pp[i] << " \n"[i+1 == pp.size()]; // for (int i = 0; i < S.size(); ++i) { // for (int j = 0; j < S[i].size(); ++j) cerr << S[i][j] << " \n"[j+1 == S[i].size()]; // } vector ans; int prod = 1; for (int i = 0; i < pp.size(); ++i) prod *= 3; for (int i = 0; i < prod; ++i) { ans.clear(); int a = 0, b = 0, c = 0; int cur = i; for (int j = pp.size(), mul = prod / 3; j--; cur %= mul, mul /= 3) { if (cur / mul == 0) a += 1 << j; else if (cur / mul == 1) b += 1 << j; else c += 1 << j; } if (S[a].size()) ans.emplace_back(S[a][0]); else continue; if (S[b].size() && S[b][0] != ans[0]) ans.emplace_back(S[b][0]); else if (S[b].size() >= 2 && S[b][1] != ans[0]) ans.emplace_back(S[b][1]); else if (S[b].size() == 3 && S[b][2] != ans[0]) ans.emplace_back(S[b][2]); else continue; if (S[c].size() && S[c][0] != ans[0] && S[c][0] != ans[1]) { ans.emplace_back(S[c][0]); } else if (S[c].size() >= 2 && S[c][1] != ans[0] && S[c][1] != ans[1]) { ans.emplace_back(S[c][1]); } else if (S[c].size() == 3 && S[c][2] != ans[0] && S[c][2] != ans[1]) { ans.emplace_back(S[c][2]); } else { continue; } sort(ans.begin(), ans.end()); for (int j = 0; j < 3; ++j) cout << ans[j] << " \n"[j == 2]; return; } cout << -1 << '\n'; } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int T; cin >> T; while (T--) solve(); }