#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7;
int n, m, a[N], b[N], s[2];
int qpow(int a, int b) {
  int ret = 1;
  while (b) {
    if (b & 1) ret = 1ll * ret * a % m;
    a = 1ll * a * a % m;
    b >>= 1;
  }
  return ret;
}
int main() {
  scanf("%d%d", &m, &n);
  for (int i = 0; i < n; i++)
    scanf("%d", &a[i]), s[0] = (s[0] + a[i]) % m,
                        s[1] = (s[1] + 1ll * a[i] * a[i]) % m;
  if (n == 1) {
    printf("%d 0", a[0]);
    return 0;
  }
  if (n == m) {
    printf("0 1");
    return 0;
  }
  sort(a, a + n);
  for (int i = 1; i < n; i++) {
    int d = a[i] - a[0],
        x = (s[0] - 1ll * n * (n - 1) / 2 % m * d % m + m) * qpow(n, m - 2) % m,
        tmp;
    tmp = (1ll * n * x % m * x + 1ll * n * (n - 1) % m * d % m * x +
           1ll * n * (n - 1) * (2 * n - 1) / 6 % m * d % m * d) %
          m;
    if (s[1] == tmp) {
      b[0] = x;
      for (int j = 1; j < n; j++) b[j] = (b[j - 1] + d) % m;
      sort(b, b + n);
      bool ok = 1;
      for (int i = 0; i < n; i++)
        if (a[i] != b[i]) {
          ok = 0;
          break;
        }
      if (ok) {
        printf("%d %d", x, d);
        return 0;
      }
    }
  }
  puts("-1");
}
