{-# 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 (flip compare)) . replicateM n $ do [a, b] <- fmap readi . B.words <$> B.getLine return (a % b) forM_ rs $ \r -> do putStrLn . unwords $ fmap show [numerator r, denominator r]