#include using namespace std; using ll=long long; using ld=long double; #define rep(i,n) for(auto i=0;i=0;i--) #define rep1(i,n) for(auto i=1;i<=n;i++) #define rep_lt(i,j,n) for(auto i=j;i void vcout(const Vec& vec){ for(auto& v:vec) cout< void vvcout(const Vec& vec){ for(auto& v:vec){ for(auto& k:v) cout< void chmax(T& a,const U& b){ if(a void chmin(T& a,const U& b) { if(a>b) a=b; } struct FastIO{ FastIO(){ ios::sync_with_stdio(false); cin.tie(nullptr); } } fastio; void YN(bool state){cout<<(state?"Yes\n":"No\n");} void CY(bool state){if(state)cout<<"Yes"< using namespace atcoder; using mint=modint998244353; //using mint=modint1000000007; using T=tuple; using P=pair; //考察 int main(){ ll n,t; cin>>n>>t; vector a(n,vector(n)); rep(i,n)rep(j,n) cin>>a[i][j]; ll s=0; ll ni=0,nj=0; vector ans; //マス(i,j)に移動 auto go=[&](ll i,ll j){ while(nii) ans.push_back('U'),ni--; while(njj) ans.push_back('L'),nj--; }; auto write=[&](ll i,ll j){ go(i,j); ans.push_back('W'); a[i][j]^=s; }; auto copy=[&](ll i,ll j){ go(i,j); ans.push_back('C'); s^=a[i][j]; }; rep(i,n)rep(j,n) if(s<(s^a[i][j])) copy(i,j); repd(i,n)repd(j,n) if(a[i][j]<(a[i][j]^s)) write(i,j); for(char p:ans) cout<