Problem: Given an integer x, find 2 integers a and b such that: 

  * 1 ≤ a,b ≤ x 
  * b divides a (a is divisible by b). 
  * a ⋅ b>x. 
  * a/b<x. 

Input

The only line contains the integer x (1 ≤ x ≤ 100).

Output

You should output two integers a and b, satisfying the given conditions, separated by a space. If no pair of integers satisfy the conditions above, print "-1" (without quotes).

Examples

Input

10


Output

6 3

Input

1


Output

-1

Solution (in JAVA):

Solution:
//Author: Mo Abjal, MJP Rohilkhand University Bareilly, UP, India 2018.
///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////********************//////////////////////////////////////////////
/////////////////////////////////////////*     S0LUT10N     *//////////////////////////////////////////////
/////////////////////////////////////////********************//////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
import java.util.*;
import java.io.*;
import java.text.*;
import java.math.*;
public class Main{
	public static StringTokenizer token = new StringTokenizer("");
	public static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	public static PrintWriter output = new PrintWriter(System.out);
	public static void main(String[] afzal) throws Exception {		
		int x = ni();
		int a=0,b=0;
		for(int i=1;i<=x;i++){
			for(int j=1;j<=x;j++){
				if(i%j==0 && (i/j)<x && (i*j)>x){
					output.println(i+" "+j); output.close(); return;
				}
			}
		}
		output.println(-1); output.close();
		/*int N = ni(); int D = ni(); https://www.udemy.com/spring-hibernate-tutorial/learn/v4/t/lecture/10689826?start=0
		int x1 = 0, y1 = D, x2 = D, y2 = 0, x3 = N, y3 = N-D, x4 = N-D, y4 = N;
		int M = ni();
		while(M-->0){
				int x = ni();
				int y = ni();
				double A = area(x1,y1,x2,y2,x3,y3);
				double B = area(x2,y2,x3,y3,x4,y4);
				double A1 = area(x,y,x1,y1,x2,y2);
				double A2 = area(x,y,x1,y1,x3,y3);
				double A3 = area(x,y,x3,y3,x4,y4);
				double A4 = area(x,y,x2,y2,x4,y4);
				if((A+B)==(A1+A2+A3+A4)){
					output.println("YES");
				}
				else{
					output.println("NO");
				}}
		output.close();*/
	}
	public static boolean prime(long p){
		for(int i=2;i*i<=p;i++){
			if(p%i==0) return false;
		}
		return true;
	}
	public static double area(int x1,int y1,int x2,int y2,int x3,int y3){
		double area = 0.0;
		area = (double)Math.abs((x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2))/2.0);
		return area;
	}
	public static long gcd(long a,long b){
		if(b==0) return a;
		else return gcd(b,a%b);
	}
	public static String pc(char c){
		return Character.toString(c);
	} 
	public static Integer pci(char c){
		return pi(Character.toString(c));
	}
	public static Integer pi(String str){
		return Integer.parseInt(str);
	}
	public static Long pl(String str){
		return Long.parseLong(str);
	}
	public static String ps(Integer N){
		return Integer.toString(N);
	}
	public static char[] pcc(String str){
		return str.toCharArray();
	}
	public static Integer ni() throws IOException{
		if(!token.hasMoreElements()){
			token = new StringTokenizer(br.readLine());
		}
		return Integer.parseInt(token.nextToken());
	}
	public static Long nl() throws IOException{
		if(!token.hasMoreElements()){
			token = new StringTokenizer(br.readLine());
		}
		return Long.parseLong(token.nextToken());
	}
	public static Double nd() throws IOException{
		if(!token.hasMoreElements()){
			token = new StringTokenizer(br.readLine());
		}
		return Double.parseDouble(token.nextToken());
	}
	public static String ns() throws IOException{
		if(!token.hasMoreElements()){
			token = new StringTokenizer(br.readLine());
		}
		return token.nextToken();
	}
	public static Integer[] ai(int N) throws IOException{
		Integer A[] = new Integer[N];
		token = new StringTokenizer(br.readLine());
		for(int i=0;i<A.length;i++){
			A[i] = pi(token.nextToken());
		}
		return A;
	}
	public static long[] al(int N) throws IOException{
		long A[] = new long[N];
		token = new StringTokenizer(br.readLine());
		for(int i=0;i<N;i++){
			A[i] = Long.parseLong(token.nextToken());
		}
		return A;
	}
	public static char[][] acc(int N,int M) throws IOException{
		char C[][] = new char[N][M];
		for(int i=0;i<N;i++){
			token = new StringTokenizer(br.readLine());
			String s = token.nextToken();
			for(int j=0;j<M;j++){
				C[i][j] = s.charAt(j);
			}
		}
		return C;
	}
	public static String[] as(int N) throws IOException{
		String S[] = new String[N];
		token = new StringTokenizer(br.readLine());
		for(int i=0;i<S.length;i++){
			S[i] = token.nextToken();
		}
		return S;
	}
	public static double ncr(int n, int r){
		if(n==r) return 1;
		else
		return (fact(n)/(fact(r)*fact(n-r)));
	}
	public static long fact(long N){
		long fact = 1;
		for(int i=1;i<=N;i++){
			fact = fact * i;
		}
		return fact;
	}
	public static BigInteger factB(int N){
		BigInteger b = new BigInteger("1");
		for(int i=1;i<=N;i++){
			b = b.multiply(BigInteger.valueOf(i));
		}
		return b;
	}
	public static long sod(long N){
		long sum = 0;
		while(N>0){
			long x = N%10;
			sum = sum + x;
			N = N/10;
		}
		return sum;
	}
	public static Integer cd(long N){
		int count=0;
		while(N>0){
			N = N/10; count++;
		}
		return count=0;
	}
}
class Pair implements Comparable{
	int a,b;
	public Pair(int a,int b){
		this.a = a;
		this.b = b;
	}
	public int compareTo(Object p){
		Pair pa = (Pair)p;
		//if(this.a==pa.a) return this.b - pa.b;
		return this.a - pa.a;
	} 
}class Pair3 implements Comparable{
	int a,b,c;
	public Pair3(int a,int b,int c){
		this.a = a;
		this.b = b;
		this.c = c;
	}
	public int compareTo(Object p){
		Pair pa = (Pair)p;
		//if(this.a==pa.a) return this.b - pa.b;
		return this.a - pa.a;
	} 
}
//Copyright Reserved - Mo Abjal.