#![allow(unused_imports)] use itertools::*; use proconio::{input, marker::*}; fn solve(n: usize, k: usize) -> Option>> { (k > 0).then(|| { (n * n - k + 1..=n * n) .chain(1..=n * n - k) .chunks(n) .into_iter() .map(|c| c.collect()) .collect() }) } fn main() { input! { n: usize, k: usize, } if let Some(ans) = solve(n, k) { for row in ans { println!("{}", row.iter().join(" ")); } } else { println!("-1"); } }