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 Perl (v5.18.2) (judge verdict: Wrong Answer)

#!/usr/bin/perl
use Data::Dumper;
my ($n,$k) = map { $_ - 0 } split(/\s+/,<STDIN>);

# c ->

my $o = '';
if( $n % 2 == 1 ){
  # 奇数
  my $v1 = ( $n - 1 ) / 2;
  my $v2 = 2 * $n - 1;
  for(my $i = 0; $i<$n; $i++){
    my $v3 = 3 * $n - 1 - $i;
    if( $k + $v1 + $v2 > $v3 ){
      print "-1\n"; exit(0);
    }
    $o .= sprintf("%d %d %d\n",($v1+$k),($v2+$k),($v3+$k));
    $v1 ++;
    if( $v1 == $n ){ $v1 = 0; }
    $v2 -= 2;
    if( $v2 < $n ){ $v2 += $n }
  }
} else {
  # 偶数
  my $n2 = $n / 2;
  for(my $i = 0; $i<$n2; $i++){
    my $v1 = $n2 + $i;
    my $v2 = 2 * $n - 1 - $i;
    my $v3 = 3 * $n - 1 - $i;
    if( $k + $v1 + $v2 > $v3 ){
      print "-1\n"; exit(0);
    }
    $o .= sprintf("%d %d %d\n",($v1+$k),($v2+$k),($v3+$k));
    my $v1 = $i;
    my $v2 = 2 * $n - 2 - $i;
    my $v3 = 3 * $n - 1 - $n2 - $i;
    if( $k + $v1 + $v2 > $v3 ){
      print "-1\n"; exit(0);
    }
    $o .= sprintf("%d %d %d\n",($v1+$k),($v2+$k),($v3+$k));
  }
}
print $o;