Before the start of the football season in Berland a strange magic ritual is held. The most experienced magicians have to find a magic matrix of the size *n* × *n* (*n* is even number). Gods will never allow to start the championship without it. Matrix should contain integers from 0 to *n* - 1, main diagonal should contain only zeroes and matrix should be symmetric. Moreover, all numbers in each row should be different. Magicians are very tired of the thinking process, so they ask you to write a program to find such matrix.
The first line contains one integer *n* (2 ≤ *n* ≤ 1000), *n* is even.
2
0 1
1 0
4
0 1 3 2
1 0 2 3
3 2 0 1
2 3 1 0
6
0 1 4 2 5 3
1 0 2 5 3 4
4 2 0 3 1 5
2 5 3 0 4 1
5 3 1 4 0 2
3 4 5 1 2 0
8
0 1 5 2 6 3 7 4
1 0 2 6 3 7 4 5
5 2 0 3 7 4 1 6
2 6 3 0 4 1 5 7
6 3 7 4 0 5 2 1
3 7 4 1 5 0 6 2
7 4 1 5 2 6 0 3
4 5 6 7 1 2 3 0
10
0 1 6 2 7 3 8 4 9 5
1 0 2 7 3 8 4 9 5 6
6 2 0 3 8 4 9 5 1 7
2 7 3 0 4 9 5 1 6 8
7 3 8 4 0 5 1 6 2 9
3 8 4 9 5 0 6 2 7 1
8 4 9 5 1 6 0 7 3 2
4 9 5 1 6 2 7 0 8 3
9 5 1 6 2 7 3 8 0 4
5 6 7 8 9 1 2 3 4 0
12
0 1 7 2 8 3 9 4 10 5 11 6
1 0 2 8 3 9 4 10 5 11 6 7
7 2 0 3 9 4 10 5 11 6 1 8
2 8 3 0 4 10 5 11 6 1 7 9
8 3 9 4 0 5 11 6 1 7 2 10
3 9 4 10 5 0 6 1 7 2 8 11
9 4 10 5 11 6 0 7 2 8 3 1
4 10 5 11 6 1 7 0 8 3 9 2
10 5 11 6 1 7 2 8 0 9 4 3
5 11 6 1 7 2 8 3 9 0 10 4
11 6 1 7 2 8 3 9 4 10 0 5
6 7 8 9 10 11 1 2 3 4 5 0
14
0 1 8 2 9 3 10 4 11 5 12 6 13 7
1 0 2 9 3 10 4 11 5 12 6 13 7 8
8 2 0 3 10 4 11 5 12 6 13 7 1 9
2 9 3 0 4 11 5 12 6 13 7 1 8 10
9 3 10 4 0 5 12 6 13 7 1 8 2 11
3 10 4 11 5 0 6 13 7 1 8 2 9 12
10 4 11 5 12 6 0 7 1 8 2 9 3 13
4 11 5 12 6 13 7 0 8 2 9 3 10 1
11 5 12 6 13 7 1 8 0 9 3 10 4 2
5 12 6 13 7 1 8 2 9 0 10 4 11 3
12 6 13 7 1 8 2 9 3 10 0 11 5 4
6 13 7 1 8 2 9 3 10 4 11 0 12 5
13 7 1 8 2 9 3 10 4 11 5 12 0 6
7 8 9 10 11 12 13 1 2 3 4 5 6 0
16
0 1 9 2 10 3 11 4 12 5 13 6 14 7 15 8
1 0 2 10 3 11 4 12 5 13 6 14 7 15 8 9
9 2 0 3 11 4 12 5 13 6 14 7 15 8 1 10
2 10 3 0 4 12 5 13 6 14 7 15 8 1 9 11
10 3 11 4 0 5 13 6 14 7 15 8 1 9 2 12
3 11 4 12 5 0 6 14 7 15 8 1 9 2 10 13
11 4 12 5 13 6 0 7 15 8 1 9 2 10 3 14
4 12 5 13 6 14 7 0 8 1 9 2 10 3 11 15
12 5 13 6 14 7 15 8 0 9 2 10 3 11 4 1
5 13 6 14 7 15 8 1 9 0 10 3 11 4 12 2
13 6 14 7 15 8 1 9 2 10 0 11 4 12 5 3
6 14 7 15 8 1 9 2 10 3 11 0 12 5 13 4
14 7 15 8 1 9 2 10 3 11 4 12 0 13 6 5
7 15...
18
0 1 10 2 11 3 12 4 13 5 14 6 15 7 16 8 17 9
1 0 2 11 3 12 4 13 5 14 6 15 7 16 8 17 9 10
10 2 0 3 12 4 13 5 14 6 15 7 16 8 17 9 1 11
2 11 3 0 4 13 5 14 6 15 7 16 8 17 9 1 10 12
11 3 12 4 0 5 14 6 15 7 16 8 17 9 1 10 2 13
3 12 4 13 5 0 6 15 7 16 8 17 9 1 10 2 11 14
12 4 13 5 14 6 0 7 16 8 17 9 1 10 2 11 3 15
4 13 5 14 6 15 7 0 8 17 9 1 10 2 11 3 12 16
13 5 14 6 15 7 16 8 0 9 1 10 2 11 3 12 4 17
5 14 6 15 7 16 8 17 9 0 10 2 11 3 12 4 13 1
14 6 15 7 16 8 17 9 1 10 0 11 3 12 4 13 5 2
6 15 7 16 8 17 9...
20
0 1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 10
1 0 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 10 11
11 2 0 3 13 4 14 5 15 6 16 7 17 8 18 9 19 10 1 12
2 12 3 0 4 14 5 15 6 16 7 17 8 18 9 19 10 1 11 13
12 3 13 4 0 5 15 6 16 7 17 8 18 9 19 10 1 11 2 14
3 13 4 14 5 0 6 16 7 17 8 18 9 19 10 1 11 2 12 15
13 4 14 5 15 6 0 7 17 8 18 9 19 10 1 11 2 12 3 16
4 14 5 15 6 16 7 0 8 18 9 19 10 1 11 2 12 3 13 17
14 5 15 6 16 7 17 8 0 9 19 10 1 11 2 12 3 13 4 18
5 15 6 16 7 17 8 18 9 0 10 1 11 2 12 3 13 4 14 19
1...
32
0 1 17 2 18 3 19 4 20 5 21 6 22 7 23 8 24 9 25 10 26 11 27 12 28 13 29 14 30 15 31 16
1 0 2 18 3 19 4 20 5 21 6 22 7 23 8 24 9 25 10 26 11 27 12 28 13 29 14 30 15 31 16 17
17 2 0 3 19 4 20 5 21 6 22 7 23 8 24 9 25 10 26 11 27 12 28 13 29 14 30 15 31 16 1 18
2 18 3 0 4 20 5 21 6 22 7 23 8 24 9 25 10 26 11 27 12 28 13 29 14 30 15 31 16 1 17 19
18 3 19 4 0 5 21 6 22 7 23 8 24 9 25 10 26 11 27 12 28 13 29 14 30 15 31 16 1 17 2 20
3 19 4 20 5 0 6 22 7 23 8 24 9 25 10 26 11 27 12 28 13 29 14 30 15 31 16 1 1...
40
0 1 21 2 22 3 23 4 24 5 25 6 26 7 27 8 28 9 29 10 30 11 31 12 32 13 33 14 34 15 35 16 36 17 37 18 38 19 39 20
1 0 2 22 3 23 4 24 5 25 6 26 7 27 8 28 9 29 10 30 11 31 12 32 13 33 14 34 15 35 16 36 17 37 18 38 19 39 20 21
21 2 0 3 23 4 24 5 25 6 26 7 27 8 28 9 29 10 30 11 31 12 32 13 33 14 34 15 35 16 36 17 37 18 38 19 39 20 1 22
2 22 3 0 4 24 5 25 6 26 7 27 8 28 9 29 10 30 11 31 12 32 13 33 14 34 15 35 16 36 17 37 18 38 19 39 20 1 21 23
22 3 23 4 0 5 25 6 26 7 27 8 28 9 29 10 30 11 31 12 32 13 33 14 34 ...
666
0 1 334 2 335 3 336 4 337 5 338 6 339 7 340 8 341 9 342 10 343 11 344 12 345 13 346 14 347 15 348 16 349 17 350 18 351 19 352 20 353 21 354 22 355 23 356 24 357 25 358 26 359 27 360 28 361 29 362 30 363 31 364 32 365 33 366 34 367 35 368 36 369 37 370 38 371 39 372 40 373 41 374 42 375 43 376 44 377 45 378 46 379 47 380 48 381 49 382 50 383 51 384 52 385 53 386 54 387 55 388 56 389 57 390 58 391 59 392 60 393 61 394 62 395 63 396 64 397 65 398 66 399 67 400 68 401 69 402 70 403 71 404 72 405 73 406 74 407 ...
66
0 1 34 2 35 3 36 4 37 5 38 6 39 7 40 8 41 9 42 10 43 11 44 12 45 13 46 14 47 15 48 16 49 17 50 18 51 19 52 20 53 21 54 22 55 23 56 24 57 25 58 26 59 27 60 28 61 29 62 30 63 31 64 32 65 33
1 0 2 35 3 36 4 37 5 38 6 39 7 40 8 41 9 42 10 43 11 44 12 45 13 46 14 47 15 48 16 49 17 50 18 51 19 52 20 53 21 54 22 55 23 56 24 57 25 58 26 59 27 60 28 61 29 62 30 63 31 64 32 65 33 34
34 2 0 3 36 4 37 5 38 6 39 7 40 8 41 9 42 10 43 11 44 12 45 13 46 14 47 15 48 16 49 17 50 18 51 19 52 20 53 21 54 22 55 23 56 24 57 2...
80
0 1 41 2 42 3 43 4 44 5 45 6 46 7 47 8 48 9 49 10 50 11 51 12 52 13 53 14 54 15 55 16 56 17 57 18 58 19 59 20 60 21 61 22 62 23 63 24 64 25 65 26 66 27 67 28 68 29 69 30 70 31 71 32 72 33 73 34 74 35 75 36 76 37 77 38 78 39 79 40
1 0 2 42 3 43 4 44 5 45 6 46 7 47 8 48 9 49 10 50 11 51 12 52 13 53 14 54 15 55 16 56 17 57 18 58 19 59 20 60 21 61 22 62 23 63 24 64 25 65 26 66 27 67 28 68 29 69 30 70 31 71 32 72 33 73 34 74 35 75 36 76 37 77 38 78 39 79 40 41
41 2 0 3 43 4 44 5 45 6 46 7 47 8 48 9 49 10 50 1...
88
0 1 45 2 46 3 47 4 48 5 49 6 50 7 51 8 52 9 53 10 54 11 55 12 56 13 57 14 58 15 59 16 60 17 61 18 62 19 63 20 64 21 65 22 66 23 67 24 68 25 69 26 70 27 71 28 72 29 73 30 74 31 75 32 76 33 77 34 78 35 79 36 80 37 81 38 82 39 83 40 84 41 85 42 86 43 87 44
1 0 2 46 3 47 4 48 5 49 6 50 7 51 8 52 9 53 10 54 11 55 12 56 13 57 14 58 15 59 16 60 17 61 18 62 19 63 20 64 21 65 22 66 23 67 24 68 25 69 26 70 27 71 28 72 29 73 30 74 31 75 32 76 33 77 34 78 35 79 36 80 37 81 38 82 39 83 40 84 41 85 42 86 43 87 44 45
4...
96
0 1 49 2 50 3 51 4 52 5 53 6 54 7 55 8 56 9 57 10 58 11 59 12 60 13 61 14 62 15 63 16 64 17 65 18 66 19 67 20 68 21 69 22 70 23 71 24 72 25 73 26 74 27 75 28 76 29 77 30 78 31 79 32 80 33 81 34 82 35 83 36 84 37 85 38 86 39 87 40 88 41 89 42 90 43 91 44 92 45 93 46 94 47 95 48
1 0 2 50 3 51 4 52 5 53 6 54 7 55 8 56 9 57 10 58 11 59 12 60 13 61 14 62 15 63 16 64 17 65 18 66 19 67 20 68 21 69 22 70 23 71 24 72 25 73 26 74 27 75 28 76 29 77 30 78 31 79 32 80 33 81 34 82 35 83 36 84 37 85 38 86 39 87 40 88 41...
100
0 1 51 2 52 3 53 4 54 5 55 6 56 7 57 8 58 9 59 10 60 11 61 12 62 13 63 14 64 15 65 16 66 17 67 18 68 19 69 20 70 21 71 22 72 23 73 24 74 25 75 26 76 27 77 28 78 29 79 30 80 31 81 32 82 33 83 34 84 35 85 36 86 37 87 38 88 39 89 40 90 41 91 42 92 43 93 44 94 45 95 46 96 47 97 48 98 49 99 50
1 0 2 52 3 53 4 54 5 55 6 56 7 57 8 58 9 59 10 60 11 61 12 62 13 63 14 64 15 65 16 66 17 67 18 68 19 69 20 70 21 71 22 72 23 73 24 74 25 75 26 76 27 77 28 78 29 79 30 80 31 81 32 82 33 83 34 84 35 85 36 86 37 87 38 88 39...
128
0 1 65 2 66 3 67 4 68 5 69 6 70 7 71 8 72 9 73 10 74 11 75 12 76 13 77 14 78 15 79 16 80 17 81 18 82 19 83 20 84 21 85 22 86 23 87 24 88 25 89 26 90 27 91 28 92 29 93 30 94 31 95 32 96 33 97 34 98 35 99 36 100 37 101 38 102 39 103 40 104 41 105 42 106 43 107 44 108 45 109 46 110 47 111 48 112 49 113 50 114 51 115 52 116 53 117 54 118 55 119 56 120 57 121 58 122 59 123 60 124 61 125 62 126 63 127 64
1 0 2 66 3 67 4 68 5 69 6 70 7 71 8 72 9 73 10 74 11 75 12 76 13 77 14 78 15 79 16 80 17 81 18 82 19 83 20 8...
144
0 1 73 2 74 3 75 4 76 5 77 6 78 7 79 8 80 9 81 10 82 11 83 12 84 13 85 14 86 15 87 16 88 17 89 18 90 19 91 20 92 21 93 22 94 23 95 24 96 25 97 26 98 27 99 28 100 29 101 30 102 31 103 32 104 33 105 34 106 35 107 36 108 37 109 38 110 39 111 40 112 41 113 42 114 43 115 44 116 45 117 46 118 47 119 48 120 49 121 50 122 51 123 52 124 53 125 54 126 55 127 56 128 57 129 58 130 59 131 60 132 61 133 62 134 63 135 64 136 65 137 66 138 67 139 68 140 69 141 70 142 71 143 72
1 0 2 74 3 75 4 76 5 77 6 78 7 79 8 80 9 81 ...
250
0 1 126 2 127 3 128 4 129 5 130 6 131 7 132 8 133 9 134 10 135 11 136 12 137 13 138 14 139 15 140 16 141 17 142 18 143 19 144 20 145 21 146 22 147 23 148 24 149 25 150 26 151 27 152 28 153 29 154 30 155 31 156 32 157 33 158 34 159 35 160 36 161 37 162 38 163 39 164 40 165 41 166 42 167 43 168 44 169 45 170 46 171 47 172 48 173 49 174 50 175 51 176 52 177 53 178 54 179 55 180 56 181 57 182 58 183 59 184 60 185 61 186 62 187 63 188 64 189 65 190 66 191 67 192 68 193 69 194 70 195 71 196 72 197 73 198 74 199 ...
284
0 1 143 2 144 3 145 4 146 5 147 6 148 7 149 8 150 9 151 10 152 11 153 12 154 13 155 14 156 15 157 16 158 17 159 18 160 19 161 20 162 21 163 22 164 23 165 24 166 25 167 26 168 27 169 28 170 29 171 30 172 31 173 32 174 33 175 34 176 35 177 36 178 37 179 38 180 39 181 40 182 41 183 42 184 43 185 44 186 45 187 46 188 47 189 48 190 49 191 50 192 51 193 52 194 53 195 54 196 55 197 56 198 57 199 58 200 59 201 60 202 61 203 62 204 63 205 64 206 65 207 66 208 67 209 68 210 69 211 70 212 71 213 72 214 73 215 74 216 ...
332
0 1 167 2 168 3 169 4 170 5 171 6 172 7 173 8 174 9 175 10 176 11 177 12 178 13 179 14 180 15 181 16 182 17 183 18 184 19 185 20 186 21 187 22 188 23 189 24 190 25 191 26 192 27 193 28 194 29 195 30 196 31 197 32 198 33 199 34 200 35 201 36 202 37 203 38 204 39 205 40 206 41 207 42 208 43 209 44 210 45 211 46 212 47 213 48 214 49 215 50 216 51 217 52 218 53 219 54 220 55 221 56 222 57 223 58 224 59 225 60 226 61 227 62 228 63 229 64 230 65 231 66 232 67 233 68 234 69 235 70 236 71 237 72 238 73 239 74 240 ...
400
0 1 201 2 202 3 203 4 204 5 205 6 206 7 207 8 208 9 209 10 210 11 211 12 212 13 213 14 214 15 215 16 216 17 217 18 218 19 219 20 220 21 221 22 222 23 223 24 224 25 225 26 226 27 227 28 228 29 229 30 230 31 231 32 232 33 233 34 234 35 235 36 236 37 237 38 238 39 239 40 240 41 241 42 242 43 243 44 244 45 245 46 246 47 247 48 248 49 249 50 250 51 251 52 252 53 253 54 254 55 255 56 256 57 257 58 258 59 259 60 260 61 261 62 262 63 263 64 264 65 265 66 266 67 267 68 268 69 269 70 270 71 271 72 272 73 273 74 274 ...
600
0 1 301 2 302 3 303 4 304 5 305 6 306 7 307 8 308 9 309 10 310 11 311 12 312 13 313 14 314 15 315 16 316 17 317 18 318 19 319 20 320 21 321 22 322 23 323 24 324 25 325 26 326 27 327 28 328 29 329 30 330 31 331 32 332 33 333 34 334 35 335 36 336 37 337 38 338 39 339 40 340 41 341 42 342 43 343 44 344 45 345 46 346 47 347 48 348 49 349 50 350 51 351 52 352 53 353 54 354 55 355 56 356 57 357 58 358 59 359 60 360 61 361 62 362 63 363 64 364 65 365 66 366 67 367 68 368 69 369 70 370 71 371 72 372 73 373 74 374 ...
700
0 1 351 2 352 3 353 4 354 5 355 6 356 7 357 8 358 9 359 10 360 11 361 12 362 13 363 14 364 15 365 16 366 17 367 18 368 19 369 20 370 21 371 22 372 23 373 24 374 25 375 26 376 27 377 28 378 29 379 30 380 31 381 32 382 33 383 34 384 35 385 36 386 37 387 38 388 39 389 40 390 41 391 42 392 43 393 44 394 45 395 46 396 47 397 48 398 49 399 50 400 51 401 52 402 53 403 54 404 55 405 56 406 57 407 58 408 59 409 60 410 61 411 62 412 63 413 64 414 65 415 66 416 67 417 68 418 69 419 70 420 71 421 72 422 73 423 74 424 ...
780
0 1 391 2 392 3 393 4 394 5 395 6 396 7 397 8 398 9 399 10 400 11 401 12 402 13 403 14 404 15 405 16 406 17 407 18 408 19 409 20 410 21 411 22 412 23 413 24 414 25 415 26 416 27 417 28 418 29 419 30 420 31 421 32 422 33 423 34 424 35 425 36 426 37 427 38 428 39 429 40 430 41 431 42 432 43 433 44 434 45 435 46 436 47 437 48 438 49 439 50 440 51 441 52 442 53 443 54 444 55 445 56 446 57 447 58 448 59 449 60 450 61 451 62 452 63 453 64 454 65 455 66 456 67 457 68 458 69 459 70 460 71 461 72 462 73 463 74 464 ...
846
0 1 424 2 425 3 426 4 427 5 428 6 429 7 430 8 431 9 432 10 433 11 434 12 435 13 436 14 437 15 438 16 439 17 440 18 441 19 442 20 443 21 444 22 445 23 446 24 447 25 448 26 449 27 450 28 451 29 452 30 453 31 454 32 455 33 456 34 457 35 458 36 459 37 460 38 461 39 462 40 463 41 464 42 465 43 466 44 467 45 468 46 469 47 470 48 471 49 472 50 473 51 474 52 475 53 476 54 477 55 478 56 479 57 480 58 481 59 482 60 483 61 484 62 485 63 486 64 487 65 488 66 489 67 490 68 491 69 492 70 493 71 494 72 495 73 496 74 497 ...
902
0 1 452 2 453 3 454 4 455 5 456 6 457 7 458 8 459 9 460 10 461 11 462 12 463 13 464 14 465 15 466 16 467 17 468 18 469 19 470 20 471 21 472 22 473 23 474 24 475 25 476 26 477 27 478 28 479 29 480 30 481 31 482 32 483 33 484 34 485 35 486 36 487 37 488 38 489 39 490 40 491 41 492 42 493 43 494 44 495 45 496 46 497 47 498 48 499 49 500 50 501 51 502 52 503 53 504 54 505 55 506 56 507 57 508 58 509 59 510 60 511 61 512 62 513 63 514 64 515 65 516 66 517 67 518 68 519 69 520 70 521 71 522 72 523 73 524 74 525 ...
1000
0 1 501 2 502 3 503 4 504 5 505 6 506 7 507 8 508 9 509 10 510 11 511 12 512 13 513 14 514 15 515 16 516 17 517 18 518 19 519 20 520 21 521 22 522 23 523 24 524 25 525 26 526 27 527 28 528 29 529 30 530 31 531 32 532 33 533 34 534 35 535 36 536 37 537 38 538 39 539 40 540 41 541 42 542 43 543 44 544 45 545 46 546 47 547 48 548 49 549 50 550 51 551 52 552 53 553 54 554 55 555 56 556 57 557 58 558 59 559 60 560 61 561 62 562 63 563 64 564 65 565 66 566 67 567 68 568 69 569 70 570 71 571 72 572 73 573 74 574 ...
__author__ = 'Darren'


def solve():
    n = int(input())
    matrix = [[0] * n for _i in range(n)]
    # for i in range(n-1):
    #     matrix[0][i] = i + 1
    # for i in range(1, n-1):
    #     for j in range(n-1):
    #         matrix[i][j] = matrix[i-1][(j+1) % (n-1)]
    for i in range(n-1):
        for j in range(n-1):
            matrix[i][j] = (i + j) % (n - 1) + 1
    for i in range(n-1):
        matrix[n-1][i] = matrix[i][n-1] = matrix[i][i]
        matrix[i][i] = 0
    for row in matrix:
        print(' '.join(map(str, row)))


if __name__ == '__main__':
    solve()
