#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; vector > memo(1000, vector(1000, -1)); int gcd(int a, int b){ if(b == 0) return a; if(a < 1000 && b < 1000 && memo[a][b] != -1) return memo[a][b]; int ret = gcd(b, a % b); if(a < 1000 && b < 1000) memo[a][b] = ret; return ret; } int lcm(int a, int b){ return a / gcd(a, b) * b; } int main() { int n; cin >> n; vector > a(n); for(int i=0; i> a[i].second; for(int i=0; i