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 Fortran (gfortran v4.8.4) (judge verdict: Wrong Answer)

program non_triangular_triplets
  implicit none
  integer(8) :: n, k, i, m
  read(*,*) n, k
  if (2_8*k-1_8 > n) then
    write(*,'(i0)') -1
    stop
  end if
  if (mod(n,2_8) == 1_8) then
    m = (n+1_8)/2_8
    do i = 0_8, m-2_8
      write(*,'(i0,x,i0,x,i0)') k+2_8*i, k+3_8*m-i-2_8, k+4_8*m+i-2_8
      write(*,'(i0,x,i0,x,i0)') k+2_8*i+1_8, k+4_8*m-i-3_8, k+5_8*m+i-3_8
    end do
    write(*,'(i0,x,i0,x,i0)') k+2_8*(m-1_8), k+2_8*m-1_8, k+6_8*m-4_8
  else
    m = n/2_8
    do i = 0_8, m-1_8
      write(*,'(i0,x,i0,x,i0)') k+2_8*i, k+3_8*m-i-1_8, k+4_8*m+i
      write(*,'(i0,x,i0,x,i0)') k+2_8*i+1_8, k+4_8*m-i-1_8, k+5_8*m+i
    end do
  end if
end program non_triangular_triplets