// we both did the best we could do, underneath the same moon, in different galaxies #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#define int long long typedef long long ll; typedef long double ld; using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); ifstream cin("note2.in"); ofstream cout("note2.out"); ll n, m; cin >> n >> m; vector a(n); for (int i = 0; i < n; i++) cin >> a[i]; int l = 0, r = -1; vector f(60, 0); ll ans = 0; for (l = 0; l < n; l++) { ll andy = 0; for (ll i = 0; i < f.size(); i++) if (f[i] == r - l + 1) andy += (1ll << i); while (r < n) { if (l <= r && andy < m) break; r++; if (r < n) { for (ll i = 0; i < f.size(); i++) { if (a[r] & (1ll << i)) f[i]++; else if (f[i] == r - l) andy -= (1ll << i); } } } ans += r - l; for (ll i = 0; i < f.size(); i++) if (a[l] & (1ll << i)) f[i]--; } cout << ans << "\n"; return 0; }