#include<bitset>
#include<iostream>
#include <stack>
#include<algorithm>
#include<map>
#include<unordered_map>
#include<unordered_set>
#include<vector>
#include<set>
#include<queue>
#include<cstdio>
#include<random>
#include<math.h>
#include<numeric>
#include<string>
#include<fstream>
#include<iomanip>
#include <immintrin.h>
#include <chrono>
#define pq priority_queue
#define qu queue
#define ll long long
#define Sroor_1000 ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
using namespace std;
const int MOD = 1e9 + 7;
int Gcd(int a, int b) {
if (b == 0)return a;
return Gcd(b, a % b);
}
bool test(int &a,int &b,int c,int &l) {
for (int i = 0; i < c; i++) {
if ((a - i) == b - (c - i)) {
l = a - i;
a = i;
b = c - i;
return false;
}
}
return true;
}
int popcount(ll c) {
return bitset<64>(c).count();
}
void solve() {
bool q = true;
int n, k = 0,l; ll c;
cin >> n>>k>>c;
if (n < k) { swap(n, k); q = false; }
if (test(n, k, popcount(c),l)) {
cout << -1;
return;
}
bitset<64>t = c,one,two;
for (int i = 0; i < 63&&l; i++) {
if (t[i] != 1) {
one[i] = two[i] = 1;
l--;
}
}
for (int i = 0;n||k; i++) {
if (t[i] == 1) {
if (n) {
one[i] = 1;
n--;
}
else {
two[i] = 1;
k--;
}
}
}
if(q) cout << one.to_ullong() << ' ' << two.to_ullong();
else cout << two.to_ullong() << ' ' << one.to_ullong();
// cout<<endl << (one.to_ullong()^two.to_ullong());
}
int main() {
Sroor_1000
/* FILE* IN, * out;
freopen_s(&IN,"stdin", "r", stdin);
freopen_s(&out,"stdout", "w", stdout);*/
int t; t = 1;
// cin >> t;
while (t--)solve();
}
CiNpbmNsdWRlPGJpdHNldD4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPHVub3JkZXJlZF9tYXA+CiNpbmNsdWRlPHVub3JkZXJlZF9zZXQ+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8c2V0PgojaW5jbHVkZTxxdWV1ZT4KI2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxyYW5kb20+CiNpbmNsdWRlPG1hdGguaD4KI2luY2x1ZGU8bnVtZXJpYz4KI2luY2x1ZGU8c3RyaW5nPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxpb21hbmlwPgojaW5jbHVkZSA8aW1taW50cmluLmg+IAojaW5jbHVkZSA8Y2hyb25vPiAKI2RlZmluZSBwcSBwcmlvcml0eV9xdWV1ZQojZGVmaW5lIHF1IHF1ZXVlCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgU3Jvb3JfMTAwMCAJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CmludCBHY2QoaW50IGEsIGludCBiKSB7CiAgICBpZiAoYiA9PSAwKXJldHVybiBhOwogICAgcmV0dXJuIEdjZChiLCBhICUgYik7Cn0KYm9vbCB0ZXN0KGludCAmYSxpbnQgJmIsaW50IGMsaW50ICZsKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGM7IGkrKykgewogICAgICAgIGlmICgoYSAtIGkpID09IGIgLSAoYyAtIGkpKSB7CiAgICAgICAgICAgIGwgPSBhIC0gaTsKICAgICAgICAgICAgYSA9IGk7CiAgICAgICAgICAgIGIgPSBjIC0gaTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB0cnVlOwp9CmludCBwb3Bjb3VudChsbCBjKSB7CiAgICByZXR1cm4gYml0c2V0PDY0PihjKS5jb3VudCgpOwp9CnZvaWQgc29sdmUoKSB7CiAgICBib29sIHEgPSB0cnVlOwogICAgaW50IG4sIGsgPSAwLGw7IGxsIGM7CiAgICBjaW4gPj4gbj4+az4+YzsKICAgIGlmIChuIDwgaykgeyBzd2FwKG4sIGspOyBxID0gZmFsc2U7IH0KICAgIGlmICh0ZXN0KG4sIGssIHBvcGNvdW50KGMpLGwpKSB7CiAgICAgICAgY291dCA8PCAtMTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBiaXRzZXQ8NjQ+dCA9IGMsb25lLHR3bzsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNjMmJmw7IGkrKykgewogICAgICAgIGlmICh0W2ldICE9IDEpIHsKICAgICAgICAgICAgb25lW2ldID0gdHdvW2ldID0gMTsKICAgICAgICAgICAgbC0tOwogICAgICAgIH0KICB9CiAgICBmb3IgKGludCBpID0gMDtufHxrOyBpKyspIHsKICAgICAgICBpZiAodFtpXSA9PSAxKSB7CiAgICAgICAgICAgIGlmIChuKSB7CiAgICAgICAgICAgICAgICBvbmVbaV0gPSAxOwogICAgICAgICAgICAgICAgbi0tOwogICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB0d29baV0gPSAxOwogICAgICAgICAgICAgICAgay0tOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICBpZihxKSBjb3V0IDw8IG9uZS50b191bGxvbmcoKSA8PCAnICcgPDwgdHdvLnRvX3VsbG9uZygpOwogICBlbHNlIGNvdXQgPDwgdHdvLnRvX3VsbG9uZygpIDw8ICcgJyA8PCBvbmUudG9fdWxsb25nKCk7CiAgIC8vIGNvdXQ8PGVuZGwgPDwgKG9uZS50b191bGxvbmcoKV50d28udG9fdWxsb25nKCkpOwoKfQoKCgoKaW50IG1haW4oKSB7CgogICAgU3Jvb3JfMTAwMAogICAgICAgIC8qIEZJTEUqIElOLCAqIG91dDsKICAgICAgICAgIGZyZW9wZW5fcygmSU4sInN0ZGluIiwgInIiLCBzdGRpbik7CiAgICAgICAgIGZyZW9wZW5fcygmb3V0LCJzdGRvdXQiLCAidyIsIHN0ZG91dCk7Ki8KICAgICAgICBpbnQgdDsgIHQgPSAxOwogLy8gIGNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSlzb2x2ZSgpOwoKCgp9Cgo=