Problem:
Score : 700 points

Problem Statement

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

Sample Input 1

1 1

Sample Output 1

1 2 3

Sample Input 2

3 3

Sample Output 2

-1

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] sa = br.readLine().split(" ");
		int n = Integer.parseInt(sa[0]);
		int k = Integer.parseInt(sa[1]);
		br.close();

		if (n < 2 * k - 1) {
			System.out.println(-1);
			return;
		}

		PrintWriter pw = new PrintWriter(System.out);
		int a = k;
		int b = k + n;
		int c = k + n + n;
		int n2 = (n + 1) / 2;
		for (int i = 0; i < n2; i++) {
			int aa = a + i * 2;
			int bb = b + n2 - 1 - i;
			int cc = c + i;
			pw.println(aa + " " + bb + " " + cc);
		}
		int m = n % 2;
		if (m == 1) {
			n2--;
		}
		for (int i = 0; i < n2; i++) {
			int aa = a + 1 + i * 2;
			int bb = c - 1 - i;
			int cc = c + n2 + m + i;
			pw.println(aa + " " + bb + " " + cc);
		}
		pw.flush();
	}
}