http://www.bnuoj.com/bnuoj/contest_show.php?cid=2322#problem/25803
// File Name: bo_jwolf5.cpp
// Author: rudolf
// Created Time: 2013年08月25日 星期日 20:40:03
#include<vector>
#include<list>
#include<map>
#include<set>
#include<deque>
#include<stack>
#include<bitset>
#include<algorithm>
#include<functional>
#include<numeric>
#include<utility>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<ctime>
using namespace std;
typedef long long INT ;
INT ex_gcd( INT a , INT b , INT &x ,INT &y )
{
if ( b == 0 )
{
x = 1 ;
y = 0 ;
return a ;
}
else
{
INT tm = ex_gcd( b , a % b , x , y ) ;
INT t = x ;
x = y ;
y = t - ( a / b ) * y ;
return tm ;
}
}
int main()
{
int Case ;
long long X , k , k1 , k2 , temp , x , y , r , a , b ;
cin >> Case ;
while( Case-- )
{
cin >> X >> k ;
a = floor( 1.0 * X / k ) ;
b = ceil( 1.0 * X / k ) ;
r = ex_gcd( a , b , x , y ) ;
x = x * X / r ;
y = y * X / r ;
cout << x << " " << y << endl ;
}
return 0;
}