{-# LANGUAGE BangPatterns, MultiWayIf #-} import Control.Applicative import Control.Monad import Data.List import Debug.Trace (traceShow) import qualified Data.ByteString.Char8 as B import Data.Ratio readi b | Just (n, _) <- B.readInt b = n main :: IO () main = do n <- readLn rs <- fmap (sortBy (\(a, b) (c, d) -> (c % d) `compare` (a % b))) . replicateM n $ do [a, b] <- fmap readi . B.words <$> B.getLine return (a, b) forM_ rs $ \(a, b) -> do putStrLn . unwords $ fmap show [a, b]