One day Vasya the Hipster decided to count how many socks he had. It turned out that he had a red socks and b blue socks.

According to the latest fashion, hipsters should wear the socks of different colors: a red one on the left foot, a blue one on the right foot.

Every day Vasya puts on new socks in the morning and throws them away before going to bed as he doesn't want to wash them.

Vasya wonders, what is the maximum number of days when he can dress fashionable and wear different socks, and after that, for how many days he can then wear the same socks until he either runs out of socks or cannot make a single pair from the socks he's got.

Can you help him?

Input

The single line of the input contains two positive integers a and b (1 ≤ a, b ≤ 100) — the number of red and blue socks that Vasya's got.

Output

Print two space-separated integers — the maximum number of days when Vasya can wear different socks and the number of days when he can wear the same socks until he either runs out of socks or cannot make a single pair from the socks he's got.

Keep in mind that at the end of the day Vasya throws away the socks that he's been wearing on that day.

Examples

Input

3 1


Output

1 1


Input

2 3


Output

2 0


Input

7 3


Output

3 2

Note

In the first sample Vasya can first put on one pair of different socks, after that he has two red socks left to wear on the second day.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Problem580A {

	static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer tok = new StringTokenizer("");

	/**
	 * Символы, по которым надо делить ввод (перевод строки всегда работает)
	 * Пример: если надо считать два времени в формате 
	 * 16:42 17:53
	 * то можно юзать delimiter = " :" 
	 * (менять можно в любом месте кода до того ввода, где нужен специальный разделитель)
	 */
	static String delimiter = " ";
	
	/**
	 * Читает строку до пробела/перевода строки
	 * Сам переходит на следуюущую строку
	 * Используется в чтении всех типов чисел
	 * 
	 * Если нужна вся строка до перевода строки - юзать <code>in.readLine()</code>
	 * 
	 * Разделитель определяется переменной <code>delimiter</code>
	 * 
	 * @see Problem580A#delimiter
	 */
	static String readString() throws IOException {
		while (!tok.hasMoreTokens()) {
			tok = new StringTokenizer(in.readLine());
		}
		
		return tok.nextToken(delimiter);
	}
	
	/**
	 * Читает всю строку до конца как массив символов
	 */
	static char[] readCharArray() throws IOException {
		return in.readLine().toCharArray();
	}
	
	/**
	 * Читает одно целое число (не зависит от пробелов и переводов строк)
	 * Тип int вмещает в себя все в пределах 2 * 10^9 (и в плюс, и в минус)
	 */
	static int readInt() throws IOException {
		return Integer.parseInt(readString());
	}
	
	/**
	 * Читает одно целое большое число (не зависит от пробелов и переводов строк)
	 * Тип long вмещает в себя все в пределах 4 * 10^18 (и в плюс, и в минус)
	 * 
	 * Важно! Индекс не может быть типа long (при обращении к массиву)
	 */
	static long readLong() throws IOException {
		return Long.parseLong(readString());
	}
	
	/**
	 * Читает одно вещественное число (не зависит от пробелов и переводов строк)
	 */
	static double readDouble() throws IOException {
		return Double.parseDouble(readString());
	}
	
	public static void main(String[] args) throws IOException {
		int red = readInt();
		int blue = readInt();
		
		int different = Math.min(red, blue);
		red -= different;
		blue -= different;
		
		int equal = (red + blue) / 2;
		System.out.println(different + " " + equal);
	}

}
