use proconio::{input, marker::Chars}; fn main() { input! { n: usize, m: usize, mut s: [Chars; n], } for _ in 0..2 { s = transpose(s); s.iter_mut().for_each(|row| row.sort_unstable()); } for row in &s { println!("{}", row.iter().collect::()); } } fn transpose(s: Vec>) -> Vec> { let h = s.len(); let w = s[0].len(); let mut res = vec![vec!['.'; h]; w]; for i in 0..w { for j in 0..h { res[i][j] = s[j][i]; } } res }