#include <iostream>
#include <vector>
#include <climits> // 用于INT_MAX
using namespace std;
int main() {
int n, m;
cin >> n >> m; // 读取糖果数量和目标甜度
vector<int> candies(n); // 创建存储糖果甜度的数组
// 读取每个糖果的甜度
for (int i = 0; i < n; i++) {
cin >> candies[i];
}
int minLen = INT_MAX; // 初始化最短长度为最大整数
int left = 0; // 滑动窗口左指针
int sum = 0; // 当前窗口甜度总和
// 右指针遍历整个糖果串
for (int right = 0; right < n; right++) {
sum += candies[right]; // 将当前糖果加入窗口
// 当窗口甜度满足条件时尝试缩小窗口
while (sum >= m) {
// 更新最小长度(当前窗口长度 = right - left + 1)
minLen = min(minLen, right - left + 1);
// 从窗口左侧移除糖果并移动左指针
sum -= candies[left];
left++; // 缩小窗口
}
}
// 输出结果(若未找到满足条件的子串则输出0)
cout << (minLen == INT_MAX ? 0 : minLen) << endl;
return 0;
}
/**************************************************************
Problem: 2105
User: hulaoshi
Language: C++
Result: Accepted
Time:100 ms
Memory:2972 kb
****************************************************************/