This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define mp make_pair
#define X first
#define Y second
using namespace std;
typedef long long ll;
typedef pair <int, int> ii;
int g, h;
void readInput(){
    cin >> g >> h;
}
ll R(ll a, ll b){
    cerr << "R " << a << ' ' << b << endl;
    if (b == 1)
        return a;
    if (a < b)
        return R(b, a);
    return R(a / b, b);
}
void solve(){
    ll l = 1, r = 1;
    while ((l + g - 1) / g * g > r || l <= g){
        l *= h;
        r = r * h + h - 1;
    }
    ll a = (l + g - 1) / g * g;
    ll b = h * a + g;
    //assert(__gcd(a, b) == g);
    //assert(R(a, b) == h);
    cout << a << ' ' << b << '\n';
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int t;
    cin >> t;
    while (t--){
        readInput();
        solve();
    }
    return 0;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |