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 JAVA (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		// TODO 自動生成されたメソッド・スタブ
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		List<Map<Integer, Integer>> list = new ArrayList<>();
		Map<Integer, Integer> map = new LinkedHashMap<>();
		while(true) {
			if ((map = checkZero(input.readLine())) == null) {
			  break;
			} else {
			  list.add(map);
			}
		}
		for (Map<Integer, Integer> resultMap : list) {
			for (Map.Entry<Integer, Integer> entry: resultMap.entrySet()) {
				System.out.println(entry.getKey() + " " + entry.getValue());
			}
		}

	}

	public static Map<Integer, Integer> checkZero(String readLine) {
		Map<Integer, Integer> checkZeroResult = new LinkedHashMap<>();

		String[] inputStr = readLine.split(" ");
		int[] inputInt = new int[inputStr.length];
		for (int i = 0; i < inputInt.length; i++) {
			inputInt[i] = Integer.parseInt(inputStr[i]);
		}
		// input number is both zero
		if (inputInt[0] == 0 && inputInt[1] == 0 ) {
			checkZeroResult = null;
		// other
		} else {
			// compare input number
			if (inputInt[0] > inputInt[1]) {
			  checkZeroResult.put(inputInt[1], inputInt[0]);
			} else {
			  checkZeroResult.put(inputInt[0], inputInt[1]);
			}
		}
		return checkZeroResult;
	}

}