#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
//给一个长度为n的数组,取其中的(连续)子序列,要求他们的值大于num。求最小的子序列长度
int main() {
int m;
cin >> m;
int data[100100];//1~x1的序列
while (m--) {
int x1, x2;
cin >> x1 >> x2;
memset(data,0,sizeof(data));
//重新覆盖数组的值,避免原有值受到影响
for (int i = 1; i <=x1 ; i++) {
cin >> data[i];
}
int sum = 0;
int r = 0;//技巧
int result = x1 + 1;//技巧
for (int l = 1; l <= x1; l++) {
while (r <= x1 && sum < x2) {
r++;//技巧
sum += data[r];
}//sum一直累和直到刚刚好大于num,退出循环
if (sum >= x2) {
result = min(r - l + 1, result);//更新子序列长度
}
sum-=data[l];
//此时只是需要l向前移动,r固定(指导l移动后,子序列的累和值小于sum r在开始移动)
}
if(result>x1)
cout<<0<<endl;
else
cout<<result<<endl;
}
return 0;
}