#include using namespace std; typedef long long ll; typedef unsigned long long ull; #define _for(i,a,b) for(register int (i)=(a);(i)<=(b);(i)++) #define For(i,a,b) for(register int (i)=(a);(i)>=(b);(i)--) #define INF 0x7fffffff #define il inline #define rg register int T; int n; ll m; int a[100005]; ll sum,x,qwq; void solve(){ sum=0,qwq=0,x=0; scanf("%d%lld",&n,&m); _for(i,1,n) scanf("%d",&a[i]), sum+=a[i], qwq=max(qwq,sum); _for(i,1,n){ x+=a[i]; if(x<0) x=0; if(x>=m){ puts("1"); return; } } if(x==0) return puts("-1"), void(); _for(i,1,n){ x+=a[i]; if(x<0) return puts("-1"), void(); if(x>=m) return puts("2"), void(); } if(sum==0) return puts("-1"), void(); ll ans; if((m-x-qwq)%sum==0) ans=(m-x-qwq)/sum+3; else ans=(m-x-qwq)/sum+4; printf("%lld\n",ans); } int main(){ scanf("%d",&T); while(T--) solve(); return 0; }