#include using namespace std; constexpr int mod = 1000000007; long long modpow(long long a,long long b) { long long ans = 1; while(b) { if(b & 1) { (ans *= a) %= mod; } (a *= a) %= mod; b /= 2; } return ans; } int main() { int L; cin >> L; vectorP(L),e(L); long long ans = 1; for(int i = 0; i < L; i++) { cin >> P[i] >> e[i]; long long tmp = 0; tmp += modpow(P[i],e[i]+2); tmp += mod-P[i]*e[i]%mod; tmp += e[i]; tmp += mod-2*P[i]%mod; tmp += 1; tmp %= mod; tmp *= modpow((P[i]-1)*(P[i]-1)%mod,mod-2); tmp %= mod; ans *= tmp; ans %= mod; } cout << ans << endl; }