Problem:
Swapping Two Numbers

Write a program which reads two integers x and y, and prints them in ascending order.

Input

The input consists of multiple datasets. Each dataset consists of two integers x and y separated by a single space.

The input ends with two 0 (when both x and y are zero). Your program should not process for these terminal symbols.

Output

For each dataset, print x and y in ascending order in a line. Put a single space between x and y.

Constraints

0 ≤ x, y ≤ 10000

the number of datasets ≤ 3000

Sample Input

3 2
2 2
5 3
0 0

Sample Output

2 3
2 2
3 5

Solution in Haskell (judge verdict: Accepted)

import qualified Data.List.Split as S

main :: IO()
main = do
    d <- readDatas
    case d of
        ("0","0") -> return ()
        otherwise -> (tuplePrint $ sort d) >> main
    
tuplePrint :: (String,String) -> IO()
tuplePrint (a,b) = putStrLn $ a ++ ' ':b

readDatas :: IO ((String,String))
readDatas = do
    l <- getLine
    let (a:b:_) = S.splitOn " " l
    return $ (a,b)

sort :: (String,String) ->  (String,String) 
sort (a,b)
    | an > bn = (b,a)
    | otherwise = (a,b)
    where
        an = read a :: Integer
        bn = read b :: Integer