#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e7, maxp = 1e6;
int prime[maxp + 10], check[maxn + 10], phi[maxn + 10], num = 0;
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
void GetPhi() {
  phi[1] = 1;
  memset(check, 0, sizeof(check));
  for (int i = 2; i < maxn; i++) {
    if (!check[i]) {
      prime[num++] = i;
      phi[i] = i - 1;
    }
    for (int j = 0; j < num; j++) {
      if (i * prime[j] > maxn) break;
      check[i * prime[j]] = 1;
      if (i % prime[j] == 0) {
        phi[i * prime[j]] = phi[i] * prime[j];
        break;
      } else {
        phi[i * prime[j]] = phi[i] * (prime[j] = 1);
      }
    }
  }
  return;
}
int main() {
  long long n;
  scanf("%lld", &n);
  if (n <= 2) {
    printf("-1");
    return 0;
  } else {
    long long a1, a2;
    if (n * n % 2 == 1) {
      a1 = (n * n - 1) / 2;
      a2 = (n * n + 1) / 2;
    } else {
      a1 = (n * n / 2 - 2) / 2;
      a2 = (n * n / 2 + 2) / 2;
    }
    printf("%lld %lld", a1, a2);
  }
}
