#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int Need = 1001001; vector prime(Need+1,true); prime.at(0) = false; prime.at(1) = false; for(int i=2; i*i<=Need; i++){ if(!prime.at(i)) continue; for(int k=i*i; k<=Need; k+=i) prime.at(k) = false; } int T; cin >> T; while(T--){ long long N,L,R; cin >> N >> L >> R; auto left = N; vector P; vector D,D2; for(int i=1; i*i<=N; i++) if(N%i == 0){ if(i > 1 && left%i == 0) P.push_back(i); while(i > 1 && left%i == 0) left /= i; D.push_back(i); if(i*i != N) D.push_back(N/i); } if(left != 1) P.push_back(left); sort(D.begin(),D.end()); int n = D.size(); for(auto d : D) if(L <= d && d <= R) D2.push_back(d); set S,S2; auto del = [&](auto del,long long x) -> void { if(S2.count(x)) return; S2.insert(x); if(S.count(x)) S.erase(x); for(auto p : P) if(x%p == 0) del(del,x/p); }; bool ok = false; for(auto b : D2){ for(auto a : S){ auto c = N/(a*b/gcd(a,b)); c = b/c*c+c; if(L <= c && c <= R){ cout << a << " " << b << " " << c << "\n"; ok = true; break; } } if(ok) break; S.insert(b); for(auto p : P) if(b%p == 0) del(del,b/p); } if(!ok) cout << -1 << "\n"; } }