#include <bits/stdc++.h>
using namespace std;
int n, m;
int a[100005], b[100005];
int he_1 = 0, he_2 = 0;
int d, x, he, oh;
int fastmi(int n, int m, int k) {
  int re = 1;
  while (m) {
    if (m & 1) {
      re = 1LL * re * n % k;
    }
    m >>= 1;
    n = 1LL * n * n % k;
  }
  return re;
}
int main() {
  scanf("%d %d", &m, &n);
  int i;
  for (i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    he_1 = (he_1 + a[i]) % m;
    he_2 = (he_2 + 1LL * a[i] * a[i]) % m;
  }
  if (n == 1) {
    printf("%d 0\n", a[0]);
    return 0;
  }
  if (n == m) {
    printf("0 1\n");
    return 0;
  }
  sort(a, a + n);
  oh = fastmi(n, m - 2, m);
  for (i = 1; i < n; i++) {
    d = (a[i] - a[0] + m) % m;
    x = 1LL * (he_1 - 1LL * n * (n - 1) / 2 % m * d % m + m) * oh % m;
    int tmp = 1LL * n * x % m * x % m;
    tmp = (tmp + 1LL * n * (n - 1) % m * d % m * x % m) % m;
    tmp = (tmp + 1LL * n * (n - 1) * (2 * n - 1) / 6 % m * d % m * d % m) % m;
    if (tmp == he_2) {
      b[0] = x;
      for (int j = 1; j < n; j++) {
        b[j] = (b[j - 1] + d) % m;
      }
      sort(b, b + n);
      int s;
      for (s = 0; s < n; s++) {
        if (b[s] != a[s]) break;
      }
      if (s == n) {
        printf("%d %d\n", x, d);
        return 0;
      }
    }
  }
  printf("-1\n");
}
