#include #include using namespace std; using ll = long long; #define rep(i, s, t) for (ll i = s; i < (ll)(t); i++) #define all(x) begin(x), end(x) template bool chmin(T& x, T y) { return x > y ? (x = y, true) : false; } template bool chmax(T& x, T y) { return x < y ? (x = y, true) : false; } vector dv(ll x) { vector rt; for (ll i = 1; i * i <= x; i++) { if (x % i == 0) { rt.push_back(i); if (i * i != x) rt.push_back(x / i); } } sort(rt.begin(), rt.end()); return rt; } vector dv2(ll x) { vector rt; for (ll i = 2; i * i <= x; i++) { ll res = 1; while (x % i == 0) { res *= i; x /= i; } if (res > 1) rt.push_back(res); } if (x > 1) rt.push_back(x); sort(rt.begin(), rt.end()); return rt; } void solve() { ll n, l, r; cin >> n >> l >> r; r++; vector d; for (auto x : dv(n)) if (l <= x && x < r) d.push_back(x); vector dd = dv2(n); int m = dd.size(); vector dp(3, vector(1 << m, vector())); for (ll x : d) { int fl = 0; rep(i, 0, m) if (x % dd[i] == 0) fl |= 1 << i; for (int i = 1; i >= 0; i--) { rep(bit, 0, 1 << m) { if (dp[i][bit].empty()) continue; dp[i + 1][bit | fl] = dp[i][bit]; dp[i + 1][bit | fl].push_back(x); } } dp[0][fl] = {x}; } auto v = dp[2][(1 << m) - 1]; if (v.size() == 3) cout << v[0] << ' ' << v[1] << ' ' << v[2] << '\n'; else cout << "-1\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); int t = 1; cin >> t; while (t--) solve(); }