시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB3741198835.918%

문제

상근이는 N×N 표를 만들었다. 표에는 1부터 N2까지의 수가 행 우선 순서(row-major order)에 따라 쓰여져 있다. 표가 수행할 수 있는 연산은 아래와 같이 두 가지이다.

  1. 행을 회전시킨다 - 한 행을 골라 오른쪽으로 한 칸 회전시킨다. 마지막 열에 있던 수가 가장 첫 열에 오게 된다.
  2. 열을 회전시킨다 - 한 열을 골라 아래로 한 칸 회전시킨다. 마지막 행에 있던 수가 갖아 첫 행에 오게 된다.

상근이는 수 X를 (R,C)로 이동시키려고 한다. 이때, 상근이는 다음과 같은 과정을 거쳐서 수를 찾는다.

  • X의 위치가 C열이 될 때 까지, X가 있는 행을 회전 시킨다.
  • X의 위치가 R행이 될 때 까지, X가 있는 열을 회전시킨다.

아래 그림은 6을 (3,4)에 이동시키는 방법이다.

상근이는 숫자 K개를 이동시키려고 한다. 한 숫자를 이동시키고 난 후에, 바로 그 다음 숫자를 이동시키며, 다음 숫자를 이동시킬 때, 표에 들어있는 수를 처음 상태로 되돌리지 않는다. 숫자 K개를 이동시키는데 필요한 회전의 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 표의 크기 N(2 ≤ N ≤ 10000)과 이동시키려고 하는 숫자의 수 K(1 ≤ K ≤ 1000)이 주어진다.

다음 K개 줄에는 이동시키려고 하는 숫자 X와 위치 R, C가 주어진다. (1 ≤ X ≤ N2, 1 ≤ R,C ≤ N)

항상 입력으로 주어진 순서대로 하나씩 이동시켜야 한다.

출력

총 K개 줄에 각각의 숫자를 이동시키는데 필요한 회전의 수를 출력한다.

예제 입력 1

4 1
6 3 4

예제 출력 1

3

예제 입력 2

4 2
6 3 4
6 2 2

예제 출력 2

3
5

예제 입력 3

5 3
1 2 2
2 2 2
12 5 5

예제 출력 3

2
5
3
W3sicHJvYmxlbV9pZCI6IjI5MzIiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWQ0NWMgXHVkNjhjXHVjODA0IiwiZGVzY3JpcHRpb24iOiI8cD5cdWMwYzFcdWFkZmNcdWM3NzRcdWIyOTQgTiZ0aW1lcztOIFx1ZDQ1Y1x1Yjk3YyBcdWI5Y2NcdWI0ZTRcdWM1YzhcdWIyZTQuIFx1ZDQ1Y1x1YzVkMFx1YjI5NCAxXHViZDgwXHVkMTMwIE48c3VwPjI8XC9zdXA+XHVhZTRjXHVjOWMwXHVjNzU4IFx1YzIxOFx1YWMwMCBcdWQ1ODkgXHVjNmIwXHVjMTIwIFx1YzIxY1x1YzExYyhyb3ctbWFqb3Igb3JkZXIpXHVjNWQwIFx1YjUzMFx1Yjc3YyBcdWM0ZjBcdWM1ZWNcdWM4MzggXHVjNzg4XHViMmU0LiBcdWQ0NWNcdWFjMDAgXHVjMjE4XHVkNTg5XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyOTQgXHVjNWYwXHVjMGIwXHVjNzQwIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NzQgXHViNDUwIFx1YWMwMFx1YzljMFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPG9sPlxyXG5cdDxsaT5cdWQ1ODlcdWM3NDQgXHVkNjhjXHVjODA0XHVjMmRjXHVkMGE4XHViMmU0IC0gXHVkNTVjIFx1ZDU4OVx1Yzc0NCBcdWFjZThcdWI3N2MgXHVjNjI0XHViOTc4XHVjYWJkXHVjNzNjXHViODVjIFx1ZDU1YyBcdWNlNzggXHVkNjhjXHVjODA0XHVjMmRjXHVkMGE4XHViMmU0LiBcdWI5YzhcdWM5YzBcdWI5YzkgXHVjNWY0XHVjNWQwIFx1Yzc4OFx1YjM1OCBcdWMyMThcdWFjMDAgXHVhYzAwXHVjN2E1IFx1Y2NhYiBcdWM1ZjRcdWM1ZDAgXHVjNjI0XHVhYzhjIFx1YjQxY1x1YjJlNC48XC9saT5cclxuXHQ8bGk+XHVjNWY0XHVjNzQ0IFx1ZDY4Y1x1YzgwNFx1YzJkY1x1ZDBhOFx1YjJlNCAtIFx1ZDU1YyBcdWM1ZjRcdWM3NDQgXHVhY2U4XHViNzdjIFx1YzU0NFx1Yjc5OFx1Yjg1YyBcdWQ1NWMgXHVjZTc4IFx1ZDY4Y1x1YzgwNFx1YzJkY1x1ZDBhOFx1YjJlNC4gXHViOWM4XHVjOWMwXHViOWM5IFx1ZDU4OVx1YzVkMCBcdWM3ODhcdWIzNTggXHVjMjE4XHVhYzAwIFx1YWMxNlx1YzU0NCBcdWNjYWIgXHVkNTg5XHVjNWQwIFx1YzYyNFx1YWM4YyBcdWI0MWNcdWIyZTQuPFwvbGk+XHJcbjxcL29sPlxyXG5cclxuPHA+XHVjMGMxXHVhZGZjXHVjNzc0XHViMjk0IFx1YzIxOCBYXHViOTdjIChSLEMpXHViODVjIFx1Yzc3NFx1YjNkOVx1YzJkY1x1ZDBhNFx1YjgyNFx1YWNlMCBcdWQ1NWNcdWIyZTQuIFx1Yzc3NFx1YjU0YywgXHVjMGMxXHVhZGZjXHVjNzc0XHViMjk0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NDAgXHVhY2ZjXHVjODE1XHVjNzQ0IFx1YWM3MFx1Y2NkMFx1YzExYyBcdWMyMThcdWI5N2MgXHVjYzNlXHViMjk0XHViMmU0LjxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPlhcdWM3NTggXHVjNzA0XHVjZTU4XHVhYzAwIENcdWM1ZjRcdWM3NzQgXHViNDIwIFx1YjU0YyBcdWFlNGNcdWM5YzAsIFhcdWFjMDAgXHVjNzg4XHViMjk0IFx1ZDU4OVx1Yzc0NCBcdWQ2OGNcdWM4MDQgXHVjMmRjXHVkMGE4XHViMmU0LjxcL2xpPlxyXG5cdDxsaT5YXHVjNzU4IFx1YzcwNFx1Y2U1OFx1YWMwMCBSXHVkNTg5XHVjNzc0IFx1YjQyMCBcdWI1NGMgXHVhZTRjXHVjOWMwLCBYXHVhYzAwIFx1Yzc4OFx1YjI5NCBcdWM1ZjRcdWM3NDQgXHVkNjhjXHVjODA0XHVjMmRjXHVkMGE4XHViMmU0LjxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPlx1YzU0NFx1Yjc5OCBcdWFkZjhcdWI5YmNcdWM3NDAgNlx1Yzc0NCAoMyw0KVx1YzVkMCBcdWM3NzRcdWIzZDlcdWMyZGNcdWQwYTRcdWIyOTQgXHViYzI5XHViYzk1XHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzYxNGZlZWQ2LWRiYjgtNGQ4NS05NzhhLWRhYjAyZjY5Yjk2MVwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogNjUwcHg7IGhlaWdodDogMTIzcHg7XCIgXC8+PFwvcD5cclxuXHJcbjxwPlx1YzBjMVx1YWRmY1x1Yzc3NFx1YjI5NCBcdWMyMmJcdWM3OTAgS1x1YWMxY1x1Yjk3YyBcdWM3NzRcdWIzZDlcdWMyZGNcdWQwYTRcdWI4MjRcdWFjZTAgXHVkNTVjXHViMmU0LiBcdWQ1NWMgXHVjMjJiXHVjNzkwXHViOTdjIFx1Yzc3NFx1YjNkOVx1YzJkY1x1ZDBhNFx1YWNlMCBcdWIwOWMgXHVkNmM0XHVjNWQwLCBcdWJjMTRcdWI4NWMgXHVhZGY4IFx1YjJlNFx1Yzc0YyBcdWMyMmJcdWM3OTBcdWI5N2MgXHVjNzc0XHViM2Q5XHVjMmRjXHVkMGE0XHViYTcwLCBcdWIyZTRcdWM3NGMgXHVjMjJiXHVjNzkwXHViOTdjIFx1Yzc3NFx1YjNkOVx1YzJkY1x1ZDBhYyBcdWI1NGMsIFx1ZDQ1Y1x1YzVkMCBcdWI0ZTRcdWM1YjRcdWM3ODhcdWIyOTQgXHVjMjE4XHViOTdjIFx1Y2M5OFx1Yzc0YyBcdWMwYzFcdWQwZGNcdWI4NWMgXHViNDE4XHViM2NjXHViOWFjXHVjOWMwIFx1YzU0YVx1YjI5NFx1YjJlNC4gXHVjMjJiXHVjNzkwIEtcdWFjMWNcdWI5N2MgXHVjNzc0XHViM2Q5XHVjMmRjXHVkMGE0XHViMjk0XHViMzcwIFx1ZDU0NFx1YzY5NFx1ZDU1YyBcdWQ2OGNcdWM4MDRcdWM3NTggXHVjMjE4XHViOTdjIFx1YWQ2Y1x1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWQ0NWNcdWM3NTggXHVkMDZjXHVhZTMwIE4oMiAmbGU7IE4gJmxlOyAxMDAwMClcdWFjZmMgXHVjNzc0XHViM2Q5XHVjMmRjXHVkMGE0XHViODI0XHVhY2UwIFx1ZDU1OFx1YjI5NCBcdWMyMmJcdWM3OTBcdWM3NTggXHVjMjE4IEsoMSAmbGU7IEsgJmxlOyAxMDAwKVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjJlNFx1Yzc0YyBLXHVhYzFjIFx1YzkwNFx1YzVkMFx1YjI5NCBcdWM3NzRcdWIzZDlcdWMyZGNcdWQwYTRcdWI4MjRcdWFjZTAgXHVkNTU4XHViMjk0IFx1YzIyYlx1Yzc5MCBYXHVjNjQwIFx1YzcwNFx1Y2U1OCBSLCBDXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gKDEgJmxlOyBYICZsZTsgTjxzdXA+MjxcL3N1cD4sIDEgJmxlOyBSLEMgJmxlOyBOKTxcL3A+XHJcblxyXG48cD5cdWQ1NmRcdWMwYzEgXHVjNzg1XHViODI1XHVjNzNjXHViODVjIFx1YzhmY1x1YzViNFx1YzljNCBcdWMyMWNcdWMxMWNcdWIzMDBcdWI4NWMgXHVkNTU4XHViMDk4XHVjNTI5IFx1Yzc3NFx1YjNkOVx1YzJkY1x1Y2YxY1x1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjZDFkIEtcdWFjMWMgXHVjOTA0XHVjNWQwIFx1YWMwMVx1YWMwMVx1Yzc1OCBcdWMyMmJcdWM3OTBcdWI5N2MgXHVjNzc0XHViM2Q5XHVjMmRjXHVkMGE0XHViMjk0XHViMzcwIFx1ZDU0NFx1YzY5NFx1ZDU1YyBcdWQ2OGNcdWM4MDRcdWM3NTggXHVjMjE4XHViOTdjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIwIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJLb3JlYW4ifSx7InByb2JsZW1faWQiOiIyOTMyIiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiVEFCTElDQSIsImRlc2NyaXB0aW9uIjoiPHA+SXZvIGhhcyBhbiBOJnRpbWVzO04gdGFibGUuIFRoZSB0YWJsZSBoYXMgdGhlIGludGVnZXJzIDEgdGhyb3VnaCBOPHN1cD4yPFwvc3VwPiBpbnNjcmliZWQgaW4gcm93LW1ham9yIG9yZGVyLiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgY2FuIGJlIGRvbmUgb24gdGhlIHRhYmxlOiZuYnNwOzxcL3A+XHJcblxyXG48b2w+XHJcblx0PGxpPlJvdGF0ZSBhIHJvdyAmbmRhc2g7IGFsbCBjZWxscyBpbiBhIHNpbmdsZSByb3cgYXJlIHJvdGF0ZWQgcmlnaHQsIHNvIHRoYXQgdGhlIG51bWJlciBpbiB0aGUgbGFzdCBjb2x1bW4gbW92ZXMgdG8gdGhlIGZpcnN0LiZuYnNwOzxcL2xpPlxyXG5cdDxsaT5Sb3RhdGUgYSBjb2x1bW4gJm5kYXNoOyBhbGwgY2VsbHMgaW4gYSBzaW5nbGUgY29sdW1uIGFyZSByb3RhdGVkIGRvd24sIHNvIHRoYXQgdGhlIG51bWJlciBpbiB0aGUgbGFzdCByb3cgbW92ZXMgdG8gdGhlIGZpcnN0LiZuYnNwOzxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwPkl2byBvY2Nhc2lvbmFsbHkgZmVlbHMgdGhlIHVyZ2UgdG8gbW92ZSBhIG51bWJlciBYIHRvIGNlbGwgKFIsIEMpIGFuZCBwcm9jZWVkcyBhcyBmb2xsb3dzOiZuYnNwOzxcL3A+XHJcblxyXG48dWw+XHJcblx0PGxpPldoaWxlIFggaXMgbm90IGluIGNvbHVtbiBDLCByb3RhdGUgdGhlIHJvdyBpdCBpcyBpbi4mbmJzcDs8XC9saT5cclxuXHQ8bGk+V2hpbGUgWCBpcyBub3QgaW4gcm93IFIsIHJvdGF0ZSB0aGUgY29sdW1uIGl0IGlzIGluLiZuYnNwOzxcL2xpPlxyXG48XC91bD5cclxuXHJcbjxwPkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gbW92ZSBudW1iZXIgNiB0byBjZWxsICgzLCA0KSwgc3RhcnQgZnJvbSB0aGUgaW5pdGlhbCBjb25maWd1cmF0aW9uOjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cImh0dHBzOlwvXC91cGxvYWQuYWNtaWNwYy5uZXRcLzYxNGZlZWQ2LWRiYjgtNGQ4NS05NzhhLWRhYjAyZjY5Yjk2MVwvLVwvcHJldmlld1wvXCIgc3R5bGU9XCJ3aWR0aDogNjUwcHg7IGhlaWdodDogMTIzcHg7XCIgXC8+PFwvcD5cclxuXHJcbjxwPkl2byB3YW50cyB0byBtb3ZlIEsgbnVtYmVycyBvbmUgYWZ0ZXIgYW5vdGhlci4gV3JpdGUgYSBwcm9ncmFtIHRoYXQgY2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIHJvdGF0aW9ucyBuZWVkZWQuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBjb250YWlucyB0d28gaW50ZWdlcnMgTiAoMiAmbGU7IE4gJmxlOyAxMCAwMDApIGFuZCBLICgxICZsZTsgSyAmbGU7IDEwMDApLCB0aGUgdGFibGUgZGltZW5zaW9uIGFuZCB0aGUgbnVtYmVyIG9mIG1vdmVzLiZuYnNwOzxcL3A+XHJcblxyXG48cD5FYWNoIG9mIHRoZSBmb2xsb3dpbmcgSyBsaW5lcyBjb250YWlucyB0aHJlZSBpbnRlZ2VycyBYICgxICZsZTsgWCAmbGU7IE48c3VwPjI8XC9zdXA+KSwgUiBhbmQgQyAoMSAmbGU7IFIsIEMgJmxlOyBOKSwgdGhlIGRlc2NyaXB0aW9uIG9mIG9uZSBtb3ZlIEl2byB3YW50cyB0byBtYWtlLiBJdm8gZG9lcyB0aGUgbW92ZXMgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgYXJlIGdpdmVuLiZuYnNwOzxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPk91dHB1dCBLIGxpbmVzOyBmb3IgZWFjaCBtb3ZlLCBvdXRwdXQgdGhlIG51bWJlciBvZiByb3RhdGlvbnMgbmVlZGVkLiZuYnNwOzxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=