#![allow( non_snake_case, unused_variables, unused_assignments, unused_mut, unused_imports, unused_macros, dead_code, static_mut_refs )] // use ac_library::*; use itertools::Itertools; use proconio::{input, derive_readable,marker::*}; use std::{cmp::*, collections::*, dbg, fmt::*, hash::*, marker::PhantomData, ops::*, print, println}; // use rustc_hash::*; fn main() { input! { n: usize, m: usize, S: [Chars;n], } let mut retu = vec![0;n]; let mut gyo = vec![0;m]; for i in 0..n { for j in 0..m { if S[i][j] == '#' { // retu[i]+=1; gyo[j]+=1; } } } let mut S2 = S.clone(); for i in 0..n { for j in 0..m { S2[i][j] = if i < gyo[j] { '#' } else { '.' } } } // dbg!(&gyo,&retu,&S2); for i in 0..n { for j in 0..m { let ct = S2[i].iter().filter(|xx| **xx == '#').count(); if j < ct { print!("{}",'#'); } else { print!("{}",'.'); } } println!(); } } trait Pipe: Sized { fn pipe(self, f: F) -> T where F: FnOnce(Self) -> T, { f(self) } } impl Pipe for T {} fn yesno(b: bool) { if b { println!("Yes"); } else { println!("No"); } }