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 Python (3.4.3) (judge verdict: Accepted)

import sys
input = sys.stdin.readline

N,K=map(int,input().split())
ANS=[]

if N%2==1:

    for i in range(N//2+1):
        ANS.append((K+i,K+2*N-1-2*i,K+3*N-1-i-N//2))

    for i in range(N//2):
        ANS.append((K+N//2+1+i,K+2*N-2-2*i,K+3*N-1-i))

    for x,y,z in ANS:
        if x+y>z:
            print(-1)
            sys.exit()

    for x,y,z in ANS:
        print(x,y,z)


else:

    for i in range(N//2):
        ANS.append((K+i,K+2*N-1-2*i,K+3*N-1-i-N//2))

    for i in range(N//2):
        ANS.append((K+N//2+i,K+2*N-2-2*i,K+3*N-1-i))


    for x,y,z in ANS:
        if x+y>z:
            print(-1)
            sys.exit()

    for x,y,z in ANS:
        print(x,y,z)