#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