#include #include #include using namespace std; int n, m, dp[21][21]; int solve(int i, int j) { if (i == 0) return 1; if (j == 0) return 1; if (dp[i][j] != -1) return dp[i][j]; return dp[i][j] = solve(i - 1, j) + solve(i, j - 1); } void print() { for (int i = 0; i < n; i++) { for (int j = 0; j < m - 1; j++) printf("%d ", dp[i][j]); printf("%d\n", dp[i][m - 1]); } } int main() { scanf("%d %d", &n, &m); memset(dp, -1, sizeof(dp)); dp[0][0] = 1; for (int i = 1; i < m; i++) dp[0][i] = 1; for (int i = 1; i < n; i++) dp[i][0] = 1; printf("%d\n", solve(n - 1, m - 1)); print(); return 0; }