use std::collections::VecDeque; fn main() { let mut buf = String::new(); let mut input = { use std::io::Read; std::io::stdin().read_to_string(&mut buf).unwrap(); buf.split_whitespace() }; let k: usize = input.next().unwrap().parse().unwrap(); let mut queues = vec![ VecDeque::from(vec![String::from("A"), String::from("E")]), VecDeque::from(vec![String::from("B")]), VecDeque::from(vec![String::from("C")]), VecDeque::from(vec![String::from("D")]), ]; for i in 0..k { let s = queues[i % 4].pop_front().unwrap(); queues[(i + 1) % 4].push_back(s); } for queue in queues.iter() { for s in queue.iter() { print!("{}", s); } println!(""); } }