#include <bits/stdc++.h>
#include <string.h>
#define int long long
#define inf 5e18
#define MOD (int)(1e9 + 7)
#define pb push_back
#define vi vector<int>
using namespace std;
signed main()
{
int n,k;
cin>>n>>k;
vi a(n);
int sum = 0;
for(int i=0;i<n;i++) cin>>a[i], sum += a[i];
if(sum%k == 0) return cout<<0, 0;
vi pref(n);
pref[0] = a[0]%k;
for(int i=1;i<n;i++) {
pref[i] = (pref[i-1] + a[i]) % k;
}
int m = sum%k;
int mn = inf;
map<int,int> mp;
for(int i=0;i<n;i++) {
int reqd = (pref[i]- m%k + k)%k;
if(mp[reqd]) mn = min(mn, i+1-mp[reqd]);
mp[pref[i]] = i+1;
}
cout<<mn;
return 0;
}
/*
max factors number = 720720 --> 240 factors
max factors number = 1441440 -->288 factors
Beautiful program
Please run for me.
I've tried you in BASIC,
FORTRAN and C.
Beautiful program,
You've errors galore.
And each time I run you,
You're swapped out of core.
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgaW5mIDVlMTgKI2RlZmluZSBNT0QgKGludCkoMWU5ICsgNykKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSB2aSB2ZWN0b3I8aW50Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzaWduZWQgbWFpbigpCnsKICAgIGludCBuLGs7CiAgICBjaW4+Pm4+Pms7CiAgICB2aSBhKG4pOwogICAgaW50IHN1bSA9IDA7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKSBjaW4+PmFbaV0sIHN1bSArPSBhW2ldOwogICAgaWYoc3VtJWsgPT0gMCkgcmV0dXJuIGNvdXQ8PDAsIDA7CiAgICB2aSBwcmVmKG4pOwogICAgcHJlZlswXSA9IGFbMF0lazsKICAgIGZvcihpbnQgaT0xO2k8bjtpKyspIHsKICAgICAgICBwcmVmW2ldID0gKHByZWZbaS0xXSArIGFbaV0pICUgazsKICAgIH0KICAgIGludCBtID0gc3VtJWs7CiAgICBpbnQgbW4gPSBpbmY7CiAgICBtYXA8aW50LGludD4gbXA7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKSB7CiAgICAgICAgaW50IHJlcWQgPSAocHJlZltpXS0gbSVrICsgayklazsKICAgICAgICBpZihtcFtyZXFkXSkgbW4gPSBtaW4obW4sIGkrMS1tcFtyZXFkXSk7CiAgICAgICAgbXBbcHJlZltpXV0gPSBpKzE7CiAgICB9CiAgICBjb3V0PDxtbjsKICAgIHJldHVybiAwOwp9CgoKLyoKbWF4IGZhY3RvcnMgbnVtYmVyID0gNzIwNzIwIC0tPiAyNDAgZmFjdG9ycwptYXggZmFjdG9ycyBudW1iZXIgPSAxNDQxNDQwIC0tPjI4OCBmYWN0b3JzCkJlYXV0aWZ1bCBwcm9ncmFtClBsZWFzZSBydW4gZm9yIG1lLgpJJ3ZlIHRyaWVkIHlvdSBpbiBCQVNJQywKRk9SVFJBTiBhbmQgQy4KQmVhdXRpZnVsIHByb2dyYW0sCllvdSd2ZSBlcnJvcnMgZ2Fsb3JlLgpBbmQgZWFjaCB0aW1lIEkgcnVuIHlvdSwKWW91J3JlIHN3YXBwZWQgb3V0IG9mIGNvcmUuCiov