#include using namespace std; typedef long long ll; const int N = 1e5 + 50; ll m, x1, m1, x2, m2; int t, n, a[N]; ll read() { ll x = 0, p = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') p = -1; for (; isdigit(c); c = getchar()) x = (x << 3) + (x << 1) + (c & 15); return x * p; } void write(ll x) { if (x >= 10) write(x / 10); putchar(x % 10 + '0'); } void writeln(ll x) { write(x); putchar('\n'); } int main() { t = read(); while (t--) { n = read(); m = read(); for (int i = 1; i <= n; i++) a[i] = read(); x1 = m1 = 0; for (int i = 1; i <= n; i++) { x1 = max(x1 + a[i], 0LL); m1 = max(m1, x1); if (x1 >= m) break; } if (x1 >= m) { puts("1"); continue; } x2 = m2 = x1; for (int i = 1; i <= n; i++) { x2 = max(x2 + a[i], 0LL); m2 = max(m2, x2); if (x2 >= m) break; } if (x2 >= m) { puts("2"); continue; } if (x1 < x2) writeln((m - m2 - 1) / (x2 - x1) + 3); else puts("-1"); } return 0; }