#include <bits/stdc++.h>
using namespace std;

#define INF INT_MAX

struct keycompare {
   bool operator()(const pair<int, int>& v, const int& k) {
      return (v.first < k);
   }
   bool operator()(const int& k, const pair<int, int>& v) {
      return (k < v.first);
   }
};

pair<int,int> prefixSum(vector<int> l, int n, int k){
    int st,en,len = INF;
    vector<pair<int,int>> prefixL(n+1);
    prefixL[0].first = 0;
    prefixL[0].second = 0;
    for(int i=0;i<n;i++){
        prefixL[i+1].first = prefixL[i].first + l[i];
        prefixL[i+1].second = i+1;
    }
    for(int i=0;i<n;i++){
        int x = lower_bound(prefixL.begin(), prefixL.end(), prefixL[i].first + k, keycompare()) - prefixL.begin();
        if(x <= n && prefixL[x].first == prefixL[i].first + k && x-i < len && prefixL[x].second > prefixL[i].second){
            len = x-i;
            en = x-1;
            st = i;
        }
    }
    return {st,en};
}

int main() {
    int n,k;
    cin >> n >> k;
    vector<int> l(n);
    for(int i=0;i<n;i++)
        cin >> l[i];
    pair<int,int> ans = prefixSum(l,n,k);
    cout << ans.first << " " << ans.second;
}