public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int x = in.nextInt();
// 1. 创建前缀和数组
long[] prefix = new long[n + 1];
for (int i = 1; i <= n; i++) {
prefix[i] = prefix[i - 1] + in.nextInt();
}
// 2. 找到第1个符合条件的区间
int left = 1;
int right = 1;
for (int i = 1; i <= x; i++) {
if (prefix[i] >= x) {
right = i;
break;
}
}
// 3. 从左往右滑动窗口
for (int l = left + 1, r = right; r <= n; l++, r++) {
if (prefix[r] - prefix[l - 1] >= x) { // 缩小窗口
while (l <= r && prefix[r] - prefix[l - 1] >= x) {
l++;
}
left = l - 1;
right = r;
}
}
System.out.print(left + " " + right + "\n");
} //简单的我片不要,做的就是复杂的方法!
#include <bits/stdc++.h>
using namespace std;
using piii = pair<int, pair<int, int>>;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n, x;
cin >> n >> x;
vector<int>a(n + 1);
vector<piii>ans;
int sum = 0, ji = 1;
for (int i = 1; i <= n; i++) {
cin >> a[i];
sum += a[i];
if (sum >= x) {
while (sum >= x) {
sum -= a[ji];
ji += 1;
ans.push_back({sum, {ji-1, i}});
}
}
}
sort(ans.begin(), ans.end(), [](piii a, piii b) {
if ((a.second.second - a.second.first) != (b.second.second - b.second.first))
return (a.second.second - a.second.first) < (b.second.second - b.second.first);
else return a.second.first < b.second.first;
});
//cout << ans[0].first << "\n";
cout << ans[0].second.first << " " << ans[0].second.second;
}