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 PyPy3 (2.4.0) (judge verdict: Accepted)

N, K = map(int, input().split())
A = []
B = []
C = [2*N+i+K for i in range(N)]
s = 2 * K + 3 * N // 2 + (1 if N % 2 == 0 else 0)
for i in range((N+1)//2):
    A.append(K+i*2)
    B.append(s-K-i-(2 if N % 2 == 0 else 0))
for i in range(N//2):
    A.append(K+1+i*2)
    B.append(s-K-i+N//2-(2 if N % 2 == 0 else 0))

for i in range(N):
    if A[i] + B[i] > C[i]:
        print(-1)
        break
else:
    for i in range(N):
        print(A[i], B[i], C[i])