#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vi = vector<ll>;
inline ll mod(ll v, ll m) {
return (v % m + m) % m;
}
int main() {
ll m, n;
cin >> m >> n;
unordered_set<ll> a;
vector<ll> values;
for (int i = 0; i < n; ++i) {
ll v;
cin >> v;
a.insert(v);
values.push_back(v);
}
random_shuffle(values.begin(), values.end());
ll start = values[0];
if (n == m) {
cout << "0 1\n";
return 0;
}
if (n == 1) {
cout << start << ' ' << 0 << endl;
return 0;
}
vector<pair<ll, ll>> candidates;
for (ll v : a) {
if (v == start) continue;
candidates.push_back({mod(start - v, m), -1});
candidates.push_back({mod(v - start, m), -1});
}
int last = -1 + (int)candidates.size();
for (ll v : values) {
if (last == -1) break;
for (int i = 0; i <= last; ++i) {
ll nv = v - candidates[i].first;
if (nv < 0) nv += m;
if (a.find(nv) == a.end()) {
if (candidates[i].second < 0)
candidates[i].second = v;
else {
if (last == i) --last;
else {
swap(candidates[last], candidates[i]);
--i;
--last;
}
}
}
}
}
if (last == -1) cout << -1 << endl;
else {
if (candidates[last].second < 0) candidates[last].second = start;
cout << candidates[last].second << ' ' << candidates[last].first << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwp1c2luZyB2aSA9IHZlY3RvcjxsbD47CgppbmxpbmUgbGwgbW9kKGxsIHYsIGxsIG0pIHsKCXJldHVybiAodiAlIG0gKyBtKSAlIG07Cn0KCmludCBtYWluKCkgewoJbGwgbSwgbjsKCWNpbiA+PiBtID4+IG47Cgl1bm9yZGVyZWRfc2V0PGxsPiBhOwoJdmVjdG9yPGxsPiB2YWx1ZXM7Cglmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewoJCWxsIHY7CgkJY2luID4+IHY7CgkJYS5pbnNlcnQodik7CgkJdmFsdWVzLnB1c2hfYmFjayh2KTsKCX0KCQoJcmFuZG9tX3NodWZmbGUodmFsdWVzLmJlZ2luKCksIHZhbHVlcy5lbmQoKSk7CglsbCBzdGFydCA9IHZhbHVlc1swXTsKCQoJaWYgKG4gPT0gbSkgewoJCWNvdXQgPDwgIjAgMVxuIjsKCQlyZXR1cm4gMDsKCX0KCWlmIChuID09IDEpIHsKCQljb3V0IDw8IHN0YXJ0IDw8ICcgJyA8PCAwIDw8IGVuZGw7CgkJcmV0dXJuIDA7Cgl9CgkKCXZlY3RvcjxwYWlyPGxsLCBsbD4+IGNhbmRpZGF0ZXM7Cglmb3IgKGxsIHYgOiBhKSB7CgkJaWYgKHYgPT0gc3RhcnQpIGNvbnRpbnVlOwoJCWNhbmRpZGF0ZXMucHVzaF9iYWNrKHttb2Qoc3RhcnQgLSB2LCBtKSwgLTF9KTsKCQljYW5kaWRhdGVzLnB1c2hfYmFjayh7bW9kKHYgLSBzdGFydCwgbSksIC0xfSk7Cgl9CgkKCWludCBsYXN0ID0gLTEgKyAoaW50KWNhbmRpZGF0ZXMuc2l6ZSgpOwoJZm9yIChsbCB2IDogdmFsdWVzKSB7CgkJaWYgKGxhc3QgPT0gLTEpIGJyZWFrOwoJCWZvciAoaW50IGkgPSAwOyBpIDw9IGxhc3Q7ICsraSkgewoJCQlsbCBudiA9IHYgLSBjYW5kaWRhdGVzW2ldLmZpcnN0OwoJCQlpZiAobnYgPCAwKSBudiArPSBtOwoJCQlpZiAoYS5maW5kKG52KSA9PSBhLmVuZCgpKSB7CgkJCQlpZiAoY2FuZGlkYXRlc1tpXS5zZWNvbmQgPCAwKQoJCQkJCWNhbmRpZGF0ZXNbaV0uc2Vjb25kID0gdjsKCQkJCWVsc2UgewoJCQkJCWlmIChsYXN0ID09IGkpIC0tbGFzdDsKCQkJCQllbHNlIHsKCQkJCQkJc3dhcChjYW5kaWRhdGVzW2xhc3RdLCBjYW5kaWRhdGVzW2ldKTsKCQkJCQkJLS1pOwoJCQkJCQktLWxhc3Q7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJfQoJCglpZiAobGFzdCA9PSAtMSkgY291dCA8PCAtMSA8PCBlbmRsOwoJZWxzZSB7CgkJaWYgKGNhbmRpZGF0ZXNbbGFzdF0uc2Vjb25kIDwgMCkgY2FuZGlkYXRlc1tsYXN0XS5zZWNvbmQgPSBzdGFydDsKCQljb3V0IDw8IGNhbmRpZGF0ZXNbbGFzdF0uc2Vjb25kIDw8ICcgJyA8PCBjYW5kaWRhdGVzW2xhc3RdLmZpcnN0IDw8IGVuZGw7Cgl9CgkKCXJldHVybiAwOwp9