#include <bits/stdc++.h>
using namespace std;
void executeTime() {
cerr << "Time Taken: " << (float)clock() / CLOCKS_PER_SEC << " secs";
}
int main() {
int n, k; cin >> n >> k;
vector<int> v(n);
for (auto &x : v) {
cin >> x;
}
unordered_map<int, int> mp;
int p = 0, ans = 0;
for (int i = 0; i < n; i++) {
p += v[i];
p %= k;
ans += mp[p - i - 1];
mp[p - i]++;
}
cout << ans << endl;
executeTime();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGV4ZWN1dGVUaW1lKCkgewogICAgY2VyciA8PCAiVGltZSBUYWtlbjogIiA8PCAoZmxvYXQpY2xvY2soKSAvIENMT0NLU19QRVJfU0VDIDw8ICIgc2VjcyI7Cn0KCmludCBtYWluKCkgewoKCiAgICBpbnQgbiwgazsgY2luID4+IG4gPj4gazsKCiAgICB2ZWN0b3I8aW50PiB2KG4pOwogICAgZm9yIChhdXRvICZ4IDogdikgewogICAgICAgIGNpbiA+PiB4OwogICAgfQoKCiAgICB1bm9yZGVyZWRfbWFwPGludCwgaW50PiBtcDsKCiAgICBpbnQgcCA9IDAsIGFucyA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHAgKz0gdltpXTsKCiAgICAgICAgcCAlPSBrOwoKICAgICAgICBhbnMgKz0gbXBbcCAtIGkgLSAxXTsKCiAgICAgICAgbXBbcCAtIGldKys7CiAgICB9CgogICAgY291dCA8PCBhbnMgPDwgZW5kbDsKCgoKICAgIGV4ZWN1dGVUaW1lKCk7CiAgICByZXR1cm4gMDsKfQ==