Prime numbers are widely applied for cryptographic and communication technology. A twin prime is a prime number that differs from another prime number by 2. For example, (5, 7) and (11, 13) are twin prime pairs.

In this problem, we call the greater number of a twin prime "size of the twin prime."

Your task is to create a program which reads an integer n and prints a twin prime which has the maximum size among twin primes less than or equals to n

You may assume that 5 ≤ n ≤ 10000.



Input

The input is a sequence of datasets. The end of the input is indicated by a line containing one zero. Each dataset is formatted as follows:


n (integer)


Output

For each dataset, print the twin prime p and q (p < q). p and q should be separated by a single space.

Example

Input

12
100
200
300
0


Output

5 7
71 73
197 199
281 283
import java.util.*;
public class Main {
	static ArrayList<Integer> list = new ArrayList<Integer>();
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		makePrimeList();
		while(true) {
			int a = sc.nextInt();
			if(a == 0) break;
			int ansa = 0;
			int ansb = 0;
			
			for(int i = 1; i < list.size(); i++) {
				if(list.get(i) <= a &&list.get(i) - list.get(i-1) == 2) {
					ansa = list.get(i-1);
					ansb = list.get(i);
				}
			}
			System.out.println(ansa + " " + ansb);
		}
		sc.close();
	}
	
	static void makePrimeList() {
		boolean[] isntPrime = new boolean[10000];
		int i = 2;
		for(; i*i < 10000; i++) {
			if(!isntPrime[i]) {
				list.add(i);
				for(int j = i + i; j < 10000; j += i) {
					isntPrime[j] = true;
				}
			}
		}
		for(; i < 10000; i++) {
			if(!isntPrime[i]) {
				list.add(i);
			}
		}
	}
}     