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: Time Limit Exceeded)

N, K = map(int,input().split())

if 2*K+1 > K+2*N:
    print(-1)
elif K + (K+2*N-1) > K+3*N-1:
    print(-1)

else:
    C = list(range(K+2*N,K+3*N))
    AB = list(range(K,K+2*N))
    submit = list()
    for i in range(N):
        c = C[::-1][i]
        a = max(AB)
        if not [x for x in AB if x <= c-a]:
            print(-1)
            break
        b = max([x for x in AB if x <= c-a])

        AB.remove(a)
        AB.remove(b)
        submit += [str(a) +" "+ str(b) + " " + str(c)] 

    if len(submit) == N:
        for s in submit:
            print(s)