#include using namespace std; const int N = 1e5 + 5; long long a[N]; long long n, m; long long f(long long x) { for (int i = 1; i <= n; i++) { x += a[i]; if (x < 0) x = 0; if (x >= m) return x; } return x; } int main() { int t; cin >> t; while (t--) { scanf("%lld %lld", &n, &m); for (int i = 1; i <= n; i++) scanf("%lld", &a[i]); __int128 x = 0; __int128 x1 = f(x); __int128 x2 = f(x1); if (x1 >= m) { puts("1"); continue; } if (x2 >= m) { puts("2"); continue; } if (x1 == x2) { puts("-1"); continue; } __int128 ONE = x2 - x1; __int128 l = 2, r = m / ONE + 1; long long ans; while (l <= r) { __int128 mid = l + r >> 1; __int128 beg = x1 + (mid - 2) * ONE; if (f(beg) >= m) { ans = mid; r = mid - 1; } else l = mid + 1; } cout << ans << endl; } return 0; }