#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve(){
int n,k,a,b;
cin>>n>>k;
if(n==k){
cout<<0<<' '<<n<<endl;
return ;
}
a=(n-k)/2+k;
b=n-a;
if(a%b==k){
cout<<a<<' '<<b<<endl;
return ;
}
else{
cout<<-1<<endl;
return ;
}
}
signed main(){
int T;
cin>>T;
while(T--){
solve();
}
return 0;
}
为什么只对一个点还0分