#include <unistd.h>
static char inBuf[1 << 10];
static int inLen = 0, inPos = 0;
inline int readChar() {
if (inPos == inLen) {
inLen = read(0, inBuf, sizeof(inBuf));
inPos = 0;
if (inLen <= 0) return -1;
}
return inBuf[inPos++];
}
inline int readInt() {
int c = readChar();
while (c <= ' ') { if (c == -1) return 0; c = readChar(); }
int x = 0;
while (c > ' ') { x = (x << 3) + (x << 1) + (c - '0'); c = readChar(); }
return x;
}
static char outBuf[1 << 10];
static int outLen = 0;
inline void flushOut() {
if (outLen > 0) { write(1, outBuf, outLen); outLen = 0; }
}
inline void outChar(char c) {
if (outLen == (int)sizeof(outBuf)) flushOut();
outBuf[outLen++] = c;
}
inline void outInt(int v) {
if (v == 0) { outChar('0'); return; }
char tmp[12]; int tl = 0;
while (v) { tmp[tl++] = '0' + v % 10; v /= 10; }
while (tl) outChar(tmp[--tl]);
}
static int a[15][15];
int main() {
int n = readInt();
int m = readInt();
}