#include<iostream>
using namespace std;
const int N=100010;
typedef long long ll;
int sum[N],a[N],cnt[N];//a是原数组,sum是前缀和,cnt[x]是前缀和对k取余的结果
int n,k;
ll ans=0;//计数
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
sum[i]=(sum[i-1]+a[i])%k;//前缀和数组取模
ans+=cnt[sum[i]];//与之前出现过sum[i]的次数,进行匹配
//一个左端点和一个右端点构成一个区间
//可以匹配的左端点数目有cnt[sum[i]]个
cnt[sum[i]]++;//将当前点变成左端点
}
cout<<ans+cnt[0]<<endl;
return 0;
}