#include<bits/stdc++.h>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int N, K; cin >> N >> K;
	vector<pair<int, int>> ans;
	for (int i = N / 2, j = N-1; i < N; i++, j -= 2) {
		ans.emplace_back(K + i, K + N + j);
	}
	for (int i = 0, j = N - 2; i < N / 2; i++, j -= 2) {
		ans.emplace_back(K + i, K + N + j);
	}
	sort(ans.begin(), ans.end(), [&](pair<int, int> a, pair<int, int> b) {
		return a.first + a.second < b.first + b.second;
	});

	for (int i = 0; i < N; i++) {
		if (ans[i].first + ans[i].second > K + N + N + i) {
			cout << -1 << '\n'; exit(0);
		}
	}
	for (int i = 0; i < N; i++) {
		cout << ans[i].first << ' ' << ans[i].second << ' ' <<  K + N + N + i << '\n';
	}

	return 0;
}

//
// 1,2 3
//
// 1,2,3,4 -> 1,4,5 and 2,3,5 (value 6)
//
// 1,2,3,4,5,6 -> 2,6 = 8, 3,4 = 7, 1,5 = 6
//
//
// 1,2,3,4,5,6,7,8 -> 3,7 = 10, 4,5 = 9, 2,6 = 8, 1,8 = 9
//
// 1,2,3,4,5,6,7,8,9,10 -> 3,10 = 13, 4,8 = 12, 5,6 = 11, 1,9 = 10, 2,7 = 9

### Prompt

Please formulate a CPP solution to the following problem:

Given are positive integers N and K.

Determine if the 3N integers K, K+1, ..., K+3N-1 can be partitioned into N triples (a_1,b_1,c_1), ..., (a_N,b_N,c_N) so that the condition below is satisfied. Any of the integers K, K+1, ..., K+3N-1 must appear in exactly one of those triples.

* For every integer i from 1 to N, a_i + b_i \leq c_i holds.



If the answer is yes, construct one such partition.

Constraints

* 1 \leq N \leq 10^5
* 1 \leq K \leq 10^9

Input

Input is given from Standard Input in the following format:


N K


Output

If it is impossible to partition the integers satisfying the condition, print `-1`. If it is possible, print N triples in the following format:


a_1 b_1 c_1
:
a_N b_N c_N

Output

If it is impossible to partition the integers satisfying the condition, print `-1`. If it is possible, print N triples in the following format:


a_1 b_1 c_1
:
a_N b_N c_N

Examples

Input

1 1


Output

1 2 3


Input

3 3


Output

-1

### Response

```cpp
#include<bits/stdc++.h>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int N, K; cin >> N >> K;
	vector<pair<int, int>> ans;
	for (int i = N / 2, j = N-1; i < N; i++, j -= 2) {
		ans.emplace_back(K + i, K + N + j);
	}
	for (int i = 0, j = N - 2; i < N / 2; i++, j -= 2) {
		ans.emplace_back(K + i, K + N + j);
	}
	sort(ans.begin(), ans.end(), [&](pair<int, int> a, pair<int, int> b) {
		return a.first + a.second < b.first + b.second;
	});

	for (int i = 0; i < N; i++) {
		if (ans[i].first + ans[i].second > K + N + N + i) {
			cout << -1 << '\n'; exit(0);
		}
	}
	for (int i = 0; i < N; i++) {
		cout << ans[i].first << ' ' << ans[i].second << ' ' <<  K + N + N + i << '\n';
	}

	return 0;
}

//
// 1,2 3
//
// 1,2,3,4 -> 1,4,5 and 2,3,5 (value 6)
//
// 1,2,3,4,5,6 -> 2,6 = 8, 3,4 = 7, 1,5 = 6
//
//
// 1,2,3,4,5,6,7,8 -> 3,7 = 10, 4,5 = 9, 2,6 = 8, 1,8 = 9
//
// 1,2,3,4,5,6,7,8,9,10 -> 3,10 = 13, 4,8 = 12, 5,6 = 11, 1,9 = 10, 2,7 = 9

```