#include #include int T,n,a[100001]; long long m; int main(){ scanf("%d",&T); for(int fd=1;fd<=T;++fd){ scanf("%d%lld",&n,&m); long long sum=0; for(int i=1;i<=n;++i)scanf("%d",a+i),sum+=a[i]; long long now=0; { for(int i=1;i<=n;++i){ now+=a[i]; if(now<0)now=0; if(now>=m)break; } if(now>=m){ puts("1"); continue; } } if(sum<=0){ for(int i=1;i<=n;++i){ now+=a[i]; if(now<0)now=0; if(now>=m)break; } if(now>=m){ puts("2"); continue; } puts("-1"); continue; } long long mn=0,mx=0; now=0; for(int i=1;i<=n;++i){ now+=a[i]; mn=std::min(mn,now); mx=std::max(mx,now); } printf("%lld\n",((m+mn-mx+sum-1)/sum)+1); } }