/* #include namespace self{entry void main(){ LL(H,W); RDVL(str,H,s); grid g(H,W); str ans{}; vec>cand; cand.eb(0,0); ans+=s[0][0]; fo(k,H+W-2){ char min_char='|'; fe(cand,i,j){ if(i+1>nx_cand; fe(cand,i,j){ if(i+1 #if __has_include() #endif using namespace std; #define eb emplace_back #define RD(T,...) T __VA_ARGS__;lin(__VA_ARGS__) #define LL(...) RD(ll,__VA_ARGS__) #define RDVL(T,n,...) vec__VA_ARGS__;fe(refs(__VA_ARGS__),e)e.get().resizes(n);lin(__VA_ARGS__) #define fo(i,...) for(auto[i,i##stop,i##step]=for_range(0,__VA_ARGS__);ivoid pp(const auto&...a){[[maybe_unused]]const char*c="";((o<(a...);} #define entry defpp void main();void main2();}int main(){self::io();self::main();}namespace self{ namespace self{ void io(){cin.tie(nullptr)->sync_with_stdio(0);cout<constexpr auto for_range(T s,T b){T a=0;if(s)swap(a,b);return array{a-s,b,1-s*2};} void lin(auto&...a){(cin>>...>>a);} bool amin(auto&a,const auto&b){return bstruct pair{ A a;B b; pair()=default; pair(A a,B b):a(a),b(b){} auto operator<=>(const pair&)const=default; }; templateusing pack_back_t=tuple_element_t>; } namespace self { templateistream&operator>>(istream&i,vector&v){fe(v,e)i>>e;return i;} templateconstexpr int depth=0; templatestruct core_t_helper{using type=T;}; templateusing core_t=core_t_helper::type; templatestruct vec; templatestruct hvec_helper{using type=vec::type>;}; templatestruct hvec_helper<0,T>{using type=T;}; templateusing hvec=hvec_helper::type; templatestruct vec:vector{ static constexpr int D=depth+1; using C=core_t; using vector::vector; void resizes(const auto&...a){if constexpr(sizeof...(a)==D)*this=make(a...,C{});else{ }} static auto make(ll n,const auto&...a){ if constexpr(sizeof...(a)==1)return vec(n,array{a...}[0]); else { } } ll size()const{return vector::size();} auto&emplace_back(auto&&...a){vector::emplace_back(std::forward(a)...);return*this;} }; templaterequires(sizeof...(A)>=2)vec(const A&...a)->vec>>; } namespace self{ struct str:string{ str()=default; }; } namespace self{ struct grid{ ll H,W; grid(ll H,ll W):H(H),W(W){} }; } #if __has_include() #endif using namespace std; namespace self{entry void main(){ LL(H,W); RDVL(str,H,s); grid g(H,W); str ans{}; vec>cand; cand.eb(0,0); ans+=s[0][0]; fo(k,H+W-2){ char min_char='|'; fe(cand,i,j){ if(i+1>nx_cand; fe(cand,i,j){ if(i+1