#include <iostream>
#include <string>
using namespace std;

void OdrediRezultate(int poeni, int poeni_za_set, int broj_setova)
{
	int broj;
	bool neparan = false;
	if (poeni % 2 != 0)
	{
		neparan = true;
		poeni--;
	}

	broj = (poeni - (broj_setova - 1) * poeni_za_set) / 2;

	cout << broj - 1 << ' ' << broj + 1 << endl;
	if (neparan)
	{
		cout << 1;
	}
	else
	{
		cout << 0;
	}
	cout << ' ' << poeni_za_set << endl;
	cout << 0 << ' ' << poeni_za_set << endl;

	for (int i = 0; i < broj_setova - 3; i++)
	{
		cout << poeni_za_set << ' ' << 0 << endl;
	}
}

int main()
{
	int poeni, poeni_za_set;
	cin >> poeni;
	cin >> poeni_za_set;

	if (poeni_za_set * 3 > poeni) 
	{
		cout << -1;
	}
	else if (poeni_za_set * 4 > poeni) 
	{
		OdrediRezultate(poeni, poeni_za_set, 3);
	}
	else if (poeni_za_set * 5 > poeni) 
	{
		OdrediRezultate(poeni, poeni_za_set, 4);
	}
	else
	{
		OdrediRezultate(poeni, poeni_za_set, 5);
	}
	return 0;
}