import java.util.*;
import java.io.*;
/*
visit는 아닌 것 같아;;
*/
public class Main
{
static int r , c;
static int[] dr = {-1,1,0,0};
static int[] dc = {0,0,-1,1};
static int[][] dp;
static int[][] map;
{
r
= Integer.
parseInt(st.
nextToken()); c
= Integer.
parseInt(st.
nextToken()); map = new int[r][c];
dp = new int[r][c];
for(int i = 0 ; i < r ; i++)
{
for(int j = 0 ; j < c ; j++)
{
map
[i
][j
] = Integer.
parseInt(st.
nextToken()); }
}
for(int i = 0 ; i < r ; i++)
{
for(int j = 0 ; j < c ; j++)
{
dp[i][j] = -1;
}
}
for(int i = 0 ; i < r ; i++)
{
for(int j = 0 ; j < c ; j++)
{
System.
out.
print(dp
[i
][j
]+" "); }
}
}
public static int dfs(int nr , int nc)
{
if(nr == r-1 && nc == c-1) return 1;
if(dp[nr][nc] != -1) return dp[nr][nc];
dp[nr][nc] = 0;
for(int i = 0 ; i < 4 ; i++)
{
int mr = nr + dr[i];
int mc = nc + dc[i];
if(mr >= 0 && mc >= 0 && mr < r && mc < c)
{
if(map[mr][mc] < map[nr][nc])
{
dp[nr][nc] += dfs(mr,mc);
}
}
}
return dp[nr][nc];
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5pby4qOwovKgp2aXNpdOuKlCDslYTri4wg6rKDIOqwmeyVhDs7CiovCnB1YmxpYyBjbGFzcyBNYWluCnsKCXN0YXRpYyBpbnQgciAsIGM7CglzdGF0aWMgaW50W10gZHIgPSB7LTEsMSwwLDB9OwoJc3RhdGljIGludFtdIGRjID0gezAsMCwtMSwxfTsKCXN0YXRpYyBpbnRbXVtdIGRwOwoJc3RhdGljIGludFtdW10gbWFwOwoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uCgl7CgkJQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKFN5c3RlbS5pbikpOwoJCVN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoYnIucmVhZExpbmUoKSk7CgkJCgkJciA9IEludGVnZXIucGFyc2VJbnQoc3QubmV4dFRva2VuKCkpOwoJCWMgPSBJbnRlZ2VyLnBhcnNlSW50KHN0Lm5leHRUb2tlbigpKTsKCQltYXAgPSBuZXcgaW50W3JdW2NdOwoJCWRwID0gbmV3IGludFtyXVtjXTsKCQkKCQlmb3IoaW50IGkgPSAwIDsgaSA8IHIgOyBpKyspCgkJewoJCQlzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoYnIucmVhZExpbmUoKSk7CgkJCWZvcihpbnQgaiA9IDAgOyBqIDwgYyA7IGorKykKCQkJewoJCQkJbWFwW2ldW2pdID0gSW50ZWdlci5wYXJzZUludChzdC5uZXh0VG9rZW4oKSk7CgkJCX0KCQl9CgkJCgkJZm9yKGludCBpID0gMCA7IGkgPCByIDsgaSsrKQoJCXsKCQkJZm9yKGludCBqID0gMCA7IGogPCBjIDsgaisrKQoJCQl7CgkJCQlkcFtpXVtqXSA9IC0xOwoJCQl9CgkJfQoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbihkZnMoMCwwKSk7CgkJCgkJZm9yKGludCBpID0gMCA7IGkgPCByIDsgaSsrKQoJCXsKCQkJZm9yKGludCBqID0gMCA7IGogPCBjIDsgaisrKQoJCQl7CgkJCQlTeXN0ZW0ub3V0LnByaW50KGRwW2ldW2pdKyIgIik7CgkJCX0KCQkJU3lzdGVtLm91dC5wcmludGxuKCk7CgkJfQoJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJfQoJcHVibGljIHN0YXRpYyBpbnQgZGZzKGludCBuciAsIGludCBuYykKCXsKCQlpZihuciA9PSByLTEgJiYgbmMgPT0gYy0xKSByZXR1cm4gMTsKCQkKCQlpZihkcFtucl1bbmNdICE9IC0xKSByZXR1cm4gZHBbbnJdW25jXTsKCQkKCQlkcFtucl1bbmNdID0gMDsKCQlmb3IoaW50IGkgPSAwIDsgaSA8IDQgOyBpKyspCgkJewoJCQlpbnQgbXIgPSBuciArIGRyW2ldOwoJCQlpbnQgbWMgPSBuYyArIGRjW2ldOwoJCQkKCQkJaWYobXIgPj0gMCAmJiBtYyA+PSAwICYmIG1yIDwgciAmJiBtYyA8IGMpCgkJCXsKCQkJCWlmKG1hcFttcl1bbWNdIDwgbWFwW25yXVtuY10pCgkJCQl7CgkJCQkJZHBbbnJdW25jXSArPSBkZnMobXIsbWMpOwoJCQkJfQoJCQl9CgkJfQoJCQoJCXJldHVybiBkcFtucl1bbmNdOwoJfQp9