#include <bits/stdc++.h>
#define ll long long
#define ull unsigned ll
constexpr auto PI = 3.141592653589793238462643383279502884;
const ll MM = 1e9+7, N = 2e5 + 10;
const ll MAX = 2e16;
using namespace std;
ll gcd(ll a, ll b) {
if (a < b)swap(a, b);
if (b == 0)return a;
return gcd(b, a % b);
}
ll lcm(ll a, ll b) {
return a * b / gcd(a, b);
}
ll numberOfDiviser(ll a) {
if (a == 1)return 0;
ll ans = 1;
ll i;
for (i = 2; i * i < a; i++) {
if (a % i == 0)ans += 2;
}
if (i * i == a)ans++;
return ans;
}
ll pow(ll a, ll b, ll m) {
if (b == 0)return 1;
if (b == 1)return a;
ll x = pow(a, b / 2, m);
x = (x * x) % m;
if (b % 2)x = (x * a);
return x % m;
}
ll inverse_mod(ll a, ll m) {
return pow(a, m - 2, m);
}
int solve() {
ll n, m; cin >> n >> m;
vector<ll>v(n);
ll sum = 0;
for (int i = 0; i < n; i++) {
cin >> v[i];
sum += v[i];
sum %= n;
}
set<ll>s;
s.insert(0);
while (!s.count(sum % n)) {
s.insert(sum % n);
sum += m;
sum %= n;
}
if (sum % n == 0)cout << gcd(m, n) << '\n';
else cout << 0 << '\n';
return 0;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
std::cout.tie(0);
int t = 1;//cin >> t;
int i = 1;
while (t--) {
//cout << "Case #" << i++ << ": ";
solve();
}
}
/*
*/
Copy