#include #include #include #include #include #include #include const int MAX_N = 100010; int T, n; long long m, a[MAX_N]; int main() { std::ios::sync_with_stdio(false); std::cin >> T; while (T--) { std::cin >> n >> m; for (int i = 1; i <= n; i++) std::cin >> a[i]; long long s = 0, max = -1; for (int i = 1; i <= n; i++) { s = s + a[i]; s = std::max(s, 0ll); max = std::max(max, s); } long long t = s; if (m <= max) { std::cout << 1 << std::endl; continue; } if (s == 0) { std::cout << -1 << std::endl; continue; } for (int i = 1; i <= n; i++) { s = s + a[i]; s = std::max(s, 0ll); max = std::max(max, s); } if (m <= max) { std::cout << 2 << std::endl; continue; } if (s <= t) { std::cout << -1 << std::endl; continue; } s = 0, max = -1; for (int i = 1; i <= n; i++) { s = s + a[i]; max = std::max(max, s); } long long rest = m - t - max; long long cnt = (rest + s - 1) / s; std::cout << cnt + 2 << std::endl; } return 0; }