WA*5,求调
#include <bits/stdc++.h>
#define int long long
using namespace std;
int ans1[100],ans2[100],numm[100];
int qpow(int a,int b)
{
int annn=1;
while(b){
if(b&1) annn*=a;
a*=a;
b>>=1;
}
return annn;
}
main()
{
ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);
int a,b,c;
bool f=0;
cin>>a>>b>>c;
if(c==0 && (a>0 || b>1)) return cout<<-1,0;
if(a==0 && b==0) return cout<<-1,0;
if(a<b) f=1,swap(a,b);
int num=c,cntt=0,cnt=0,cnt2=a-b;
while(num){
numm[++cntt]=num%2;
cnt+=numm[cntt];
num>>=1;
}
// for(int i=1;i<=cntt;i++) cout<<numm[i];
if((cnt-cnt2)%2==0){
int lg=log2(c)+1;
int d1=(cnt-cnt2)/2,d2=(cnt-cnt2)/2+cnt2,hou=a-d2,len1=lg+a-d2,len2=lg+b-d1;
//cout<<lg<<" "<<d1<<" "<<d2<<" "<<len1<<" "<<len2<<" "<<hou<<"\n";
for(int i=1;i<=lg;i++){
if(numm[i]==1 && d2){
numm[i]=0;
ans1[i]=1;
d2--;
}
else if(numm[i]==0 && hou){
hou--;len1--;len2--;
ans1[i]=ans2[i]=1;
}
}
//cout<<len1<<" "<<len2<<"\n";
for(int i=lg+1;i<=len1;i++) ans1[i]=1;
for(int i=1;i<=lg;i++){
if(numm[i] && d1){
ans2[i]=1;
d1--;
}
}
for(int i=lg+1;i<=len2;i++) ans2[i]=1;
int anss1=0,anss2=0;
for(int i=len1;i>=1;i--){
//cout<<ans1[i];
if(ans1[i]==1) anss1+=qpow(2,i-1);
}
for(int i=len2;i>=1;i--){
if(ans2[i]==1) anss2+=qpow(2,i-1);
}
if(!f) cout<<anss1<<" "<<anss2<<"\n";
else cout<<anss2<<" "<<anss1<<"\n";
}
else cout<<-1;
return 0;
}