#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;
    }

    int p = 0;
    unordered_map<int, int> mp;
    mp[0] = 0;

    int ans = -1;

    for (int i = 0; i < n; i++) {
        p += v[i];

        if (mp.count(p - k)) {
            ans = max(ans, i + 1 - mp[p - k]);
        }

        if (!mp.count(p)) mp[p] = i + 1;
    }

    cout << ans << endl;

    executeTime();
    return 0;
}