use std::collections::VecDeque; fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut base = (1..=n).collect::>(); for _ in 0..n { println!("{}", base.iter().map(|&i| i.to_string()).collect::>().join(" ")); let val = base.pop_front().unwrap(); base.push_back(val); } }