#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
struct luxor{
    ll a;
    ll b;
};
string cinioci(ll n,string rez){
    for(int i=0;i*i<=n;i++){
        if(n%i==0){
            rez.push_back(i+'0');
            rez.push_back('+');
            rez.push_back(n/i+'0');
            rez.push_back(' ');
        }
    }
    return rez;

}
ll pretvori(string s){
    ll rez=0;
   for(int i=s.size()-1;i>=0;i--){
    rez=rez*10+(s[i]-'0');

   }
   return rez;

}

int main()
{
    ll t;
    luxor niz[t];
    for(int i=0;i<t;i++)
        cin >> niz[i].a>> niz[i].b ;
    for(int i=0;i<t;i++){
       string s=cinioci(niz[i].a,"");
        int pomr=s.find(' ');
       while(pomr+1!=s.size()){
        int j=0;
        int pom=s.find("+");
        string s1=s.substr(j,pom);
        j=pom+1;
        string s2=s.substr(j,pomr);
        ll x=pretvori(s1),y=pretvori(s2);
            if(x^y==niz[i].b){
                cout << x << " " << y <<'\n';
                pomr=s.size();
            }
       }
  }
}