#define _USE_MATH_DEFINES #include //cin, cout #include //vector #include //sort,min,max,count #include //string,getline, to_string #include //abs(int) #include //swap, pair #include //tuple #include //deque #include //INT_MAX #include //bitset #include //sqrt, ceil. M_PI, pow, sin #include //fixed #include //setprecision #include //stringstream #include //gcd, assumlate #include //randam_device #include //numeric_limits using namespace std; constexpr long long int D_MOD = 1000000007; int main() { int n; cin >> n; int64_t m = 362880; vector> A(n); int64_t temp1, temp2, temp3; for (int i = 0; i < n; i++) { cin >> temp2 >> temp3; temp1 = (m / temp3) * temp2; A.at(i) = { temp1, temp2, temp3 }; } sort(A.rbegin(), A.rend()); for (int i = 0; i < n; i++) { cout << get<1>(A.at(i)) << " " << get<2>(A.at(i)) << endl; } return 0; }