module IntSet = Set.Make (struct
  type t = int
  let compare = compare
end)

let lower_bound x s =
  match IntSet.split x s with
  | (_, true, _) -> x
  | (s, false, _) -> IntSet.max_elt s

let () = Scanf.scanf "%d %d" @@ fun n k ->
  if
    n * (2 * k + 5 * n - 1) < 2 * n * (2 * k + 2 * n - 1)
  then print_endline "-1"
  else begin
    ignore @@
    Array.fold_right (fun c s ->
      let a = IntSet.max_elt s in
      let s = IntSet.remove a s in
      let b = lower_bound (c - a) s in
      let s = IntSet.remove b s in
      Printf.printf "%d %d %d\n" a b c; s) (Array.init n (( + ) (k + 2 * n))) @@
      IntSet.of_list @@
      Array.to_list @@
      Array.init (2 * n) (( + ) k)
  end
