#include <bits/stdc++.h>
using namespace std;
unsigned long long ans, a, b, x;
int ba[100], bb[100], bx[100];
int carry(int a, int b, int c) {
  int cn[2] = {0, 0};
  cn[a]++;
  cn[b]++;
  cn[c]++;
  if (cn[1] >= 2)
    return 1;
  else
    return 0;
}
int main() {
  int nc, pc, tmp, ok = 1;
  cin >> a >> b;
  nc = 0;
  for (int i = 63; i >= 0; --i) {
    ba[i] = (a & (1llu << i)) ? 1 : 0;
    bb[i] = (b & (1llu << i)) ? 1 : 0;
    pc = ba[i] ^ bb[i];
    ok = 0;
    for (int k = 0; k < (2); ++k) {
      if (carry(k, pc, bb[i] ^ k) == nc) {
        bx[i] = k;
        ok = 1;
        break;
      }
    }
    if (!ok) break;
    nc = pc;
    x = x * 2 + bx[i];
  }
  if (!ok || nc)
    printf("-1\n");
  else
    cout << x << " " << (b ^ x) << endl;
  return 0;
}
