template <typename T = longlong> inline T crt_solve(std::vector<std::pair<T, T>> &eqs) { int m = eqs.size(); T ans = 0, N = 1; for (auto [a, n] : eqs) N = N * n;
for (int i = 0; i < m; i++) { auto [a, n] = eqs[i]; T P = N / n; auto [g, inv, _] = exgcd(P, n); ans = (ans + modmul(modmul(a, P, N), inv, N)) % N; } return (ans % N + N) % N; }