#include <iostream>
using namespace std;
int main() {
int N, M;
cin >> N >> M;
int matrix[100][100]; // максимальный размер 100x100 по условию
// Заполнение: первые M - 1 столбцов — -1
for (int i = 0; i < N; ++i) {
for (int j = 0; j < M - 1; ++j) {
matrix[i][j] = -1;
}
}
// Последний столбец: M - 1 + 1 = M
for (int i = 0; i < N; ++i) {
matrix[i][M - 1] = M;
}
// Количество отрицательных столбцов — это M - 1
cout << M - 1 << endl;
// Печать матрицы
for (int i = 0; i < N; ++i) {
for (int j = 0; j < M; ++j) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgTiwgTTsKICAgIGNpbiA+PiBOID4+IE07CgogICAgaW50IG1hdHJpeFsxMDBdWzEwMF07IC8vINC80LDQutGB0LjQvNCw0LvRjNC90YvQuSDRgNCw0LfQvNC10YAgMTAweDEwMCDQv9C+INGD0YHQu9C+0LLQuNGOCgogICAgLy8g0JfQsNC/0L7Qu9C90LXQvdC40LU6INC/0LXRgNCy0YvQtSBNIC0gMSDRgdGC0L7Qu9Cx0YbQvtCyIOKAlCAtMQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE0gLSAxOyArK2opIHsKICAgICAgICAgICAgbWF0cml4W2ldW2pdID0gLTE7CiAgICAgICAgfQogICAgfQoKICAgIC8vINCf0L7RgdC70LXQtNC90LjQuSDRgdGC0L7Qu9Cx0LXRhjogTSAtIDEgKyAxID0gTQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpIHsKICAgICAgICBtYXRyaXhbaV1bTSAtIDFdID0gTTsKICAgIH0KCiAgICAvLyDQmtC+0LvQuNGH0LXRgdGC0LLQviDQvtGC0YDQuNGG0LDRgtC10LvRjNC90YvRhSDRgdGC0L7Qu9Cx0YbQvtCyIOKAlCDRjdGC0L4gTSAtIDEKICAgIGNvdXQgPDwgTSAtIDEgPDwgZW5kbDsKCiAgICAvLyDQn9C10YfQsNGC0Ywg0LzQsNGC0YDQuNGG0YsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBNOyArK2opIHsKICAgICAgICAgICAgY291dCA8PCBtYXRyaXhbaV1bal0gPDwgIiAiOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K