use std::collections::VecDeque; fn main() { let mut k = String::new(); std::io::stdin().read_line(&mut k).ok(); let k: usize = k.trim().parse().unwrap(); let mut q = vec![ VecDeque::from(['A', 'E']), VecDeque::from(['B']), VecDeque::from(['C']), VecDeque::from(['D']), ]; for i in 0..k { let c = q[i % 4].pop_front().unwrap(); q[(i + 1) % 4].push_back(c); } for c in &q { println!( "{}", c.iter().map(|e| e.to_string()) .collect::>().join("") ); } }