#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,n) for(int i=0;i<(n);i++) #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define sz(x) ((int)(x).size()) #define pb push_back using ll = long long; using namespace std; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> N >> P; ll p = P; vector A(N); rep(i,N) cin >> A[i]; ll ans = 0; while(P<(1LL<<30)){ map mp; rep(i,N) mp[A[i]%P]++; for(auto m:mp){ ans += m.second*(m.second-1)/2; } P*=p; } cout << ans << endl; return 0; }