#include #include using namespace std; const int mod = 1e9 + 7; int power(int a, int b) { int res = 1; while (b) { if (b & 1) res = res * 1ll * a % mod; a = a * 1ll * a % mod; b /= 2; } return res; } int main() { auto sum = [&](int q, int n) { int res = 0; int u = 1; for (int i = 0; i <= n; i++) { res = (res + u) % mod; u = u * 1ll * q % mod; } return res; }; auto qsum = [&](int a, int q, int n) { int up = (1 - power(q, n) + mod) % mod; up = up * 1ll * a % mod; int div = power((1 - q + mod) % mod, mod - 2); return up * 1ll * div % mod; }; int n; scanf("%d", &n); int ans = 1; for (int i = 0; i < n; i++) { int q, e; scanf("%d%d", &q, &e); /* int cur = 0; for (int j = 0; j <= e; j++) { cur = (cur + sum(q, j)) % mod; }*/ int up = (e + 1); up = (up - qsum(q, q, e + 1) + mod) % mod; // printf("up = %d\n", up); int div = power((1 - q + mod) % mod, mod - 2); int my = up * 1ll * div % mod; // printf("i = %d, cur = %d, expect = %d\n", i, my, cur); ans = ans * 1ll * my % mod; } printf("%d\n", ans); return 0; }