Problem: Convexity of a set of points on the plane is the size of the largest subset of points that form a convex polygon. Your task is to build a set of n points with the convexity of exactly m. Your set of points should not contain three points that lie on a straight line.

Input

The single line contains two integers n and m (3 ≤ m ≤ 100, m ≤ n ≤ 2m).

Output

If there is no solution, print "-1". Otherwise, print n pairs of integers — the coordinates of points of any set with the convexity of m. The coordinates shouldn't exceed 108 in their absolute value.

Examples

Input

4 3


Output

0 0
3 0
0 3
1 1


Input

6 3


Output

-1


Input

6 6


Output

10 0
-10 0
10 1
9 1
9 -1
0 -2


Input

7 4


Output

176166 6377
709276 539564
654734 174109
910147 434207
790497 366519
606663 21061
859328 886001

Solution (in JAVA):

Solution:
import java.util.*;
import java.io.*;
public class Main
{
	public static void main(String[] args)
	{
		FastScanner in = new FastScanner(System.in);
		int N = in.nextInt();
		int M = in.nextInt();
		if (M == 3)
		{
			switch (N)
			{
				case 3:
					println("1 0");
					println("0 1");
					println("0 0");
					break;
				case 4:
					println("0 0");
					println("0 3");
					println("3 0");
					println("1 1");
					break;

				default:
					println(-1);
			}
		}
		else
		{
			for (int i = 0; i < M; i++)
				println(i + " " + (40000 + i*i));
			for (int i = 0; i < N - M; i++)
				println(i + " " + -(40000 + i*i));
		}

	}
	static void println(String str)
	{
		System.out.println(str);
	}
	static void println(double d) {System.out.println(d);}
	static void println(long l) {System.out.println(l);}
}
class FastScanner
{
	BufferedReader reader;
	StringTokenizer tokenizer;
	FastScanner (InputStream inputStream)
	{
		reader = new BufferedReader(new InputStreamReader(inputStream));
	}
	String nextToken()
	{
		while (tokenizer == null || ! tokenizer.hasMoreTokens())
		{
			try {
				tokenizer = new StringTokenizer(reader.readLine());
			} catch (Exception e){}
		}
		return tokenizer.nextToken();
	}
	int nextInt()
	{
		return Integer.parseInt(nextToken());
	}
}