cmimc

Code for the 2021 CMIMC Programming Contest

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
  101. 101
100 100 3 2
.XXXXX.......XX.XX....X.X...XX.XXXXXXXX...XX..X...XX...XXXX..XXX.XXX..XX....X...X.....XXXXXXXXXXXX..
.X...X.X..XX..X..XXX.XX...X..X.....XX.XX.....XX.X.X..XX.X.X.XXXX..XX.XXX.XX...X.XX.X......XXX......X
..X.....XXX.X.....X...XXXX..XXX.....X.X..X.XX.XXX...XXX...........XX..XX.X.X.XX...X..XXXXXX...X.XX..
....XX.XX.X..X.XX...X.X....X..XXX.X......X.XX.X.X.X.XX..XX.X.XX.XXXX..XX.X.XXXX..XXX....XX.X.XXX...X
XXX.XXXX..X.X...XXXXXXX.XXXX.XXXXXX.XX.XXX.XX.....XX.XXXX..XX.X.XXXX.XXX.X.XXX..XX..X.XXX....XXXXX.X
XX..X..X.X..X.X..XX.....X.X...XX.XXXX..X...X..XXXX.X.XX.XXXXX....X....XXX....XX.X.X.X...X.XX.XXXXX.X
.......X.X..X.XX..X.X.X.X.X.XX....X.XXXXXX...XXXXX...XX.X....XX.XXX....X..XX....X.X....X...XXX..X..X
X.XXXXXX.X...XX....X..X.......XX.XX.XXXX......XX...XXX...XXX.....X..XX...XXXXX.XX...X..XXX.....XX.XX
XXXXXXXX.X.X....X....XX.X.X.XX.X.XX.X.XXXXX.XX...X.....XXXX..XX.XX..X..XX...X.XXX..X..XXX..XXXXXXXX.
XXXXXXX..XXX.XX.XX.XX...X.X...........XXX.X...X.XXX.XX..XXX.XXX.XX.XX.XXXX.XX.XX..X...X..X.....XXXX.
X.X.XX..XXX...X.XX..X.XX..XX..X...X.XXX...XXX...XXX..XX.......XXX..XXXX....XX..XXX.X....X..XXX......
....X..XXXX.XXX.X....XXX.X...XXX.XX...X.X...X.X...XX..XXXXXXX.X...XX..XXXX......XX...XX....X...XXXXX
..X.X.X.....X...XX.XXX...XXX....XXXX.X..XXXXXX..X.XX.....XXX...XX....XXX...XXX.XXXX...X.XXXX.XXXXXXX
.XX.X...X.X.XXX.XXXXX..XXXXX.......XX...XXXXXXX..X.X.X.X.X.X.XXX..X.XX...X..XXXX..X.XX...X.X.X......
XXX....XXX...XXXXXXXX.XX..XXX.X..XXX..X.XX.X.......XX..XX...XX...X..X.....XX...X.X.XXX.X.X.....XXXX.
XX..X.X.XXXX.XXXX...XX.XX...X.XX.XX..X...X...XX.XXXX..XX..XX...X..X...X.XX.XXX.....XXX.XX...X...XX..
XXXX..X.X.XXX.X.XX.X...RXX..X.XX....X..X.X.X..X..XXXXXX...XXX...XXXX..X....XXXXX.......XXXXXXXX.XX.X
.X..X.X.X.XXX.X..X...XXXX.....XXX..XX.XXXX.X..XX..XX....XX....X.XXXXX.X.XXXXX.X..XX.X.X..XX...X..XX.
....X......X..XX....XX....XXX.XXXXXXX..XXXX..XXXX...XXX.X..XXXX.X..XXXXXXXXX..XXX.XX..XX..X.X.X...X.
XXX...X.X.XXX.XXX.XXXXX.XXXX.....X....XXX..X.XX.X...X.X.X.XXX.X....XX.XX.X.X......XX.....XXX..X.X...
X.XXXXX.X..X..XXX.......XX..XX.X.XXX..X...XX.X............XXX.X.X.X.X..X.....XX...XXXXXX.X.XX....X.X
......X..X......X.XX.XX.......XXXX.XX...X.XXX..XX.X.XXXXX.X.....X.X..X.XXXXX.XX.X.XX..XX.X..XXXX..XX
.XX.X..X..X..XX..XXX..X.X..X.XXXXX.XXXXX...XX....XXXXX.XX.XX.XX.X.X.X...X....XXXXXXX.X...X..XXX.XX..
X...XX.....X.XXXX.XXX..X.X.X...XXX.X.X...X.XX.XX.X.....XX.XX.XXXXXX..X.X...XXX.XX..X...X...X..X.....
..X..XXXXX.X.XXXX.XXXX...XXX.XX.XX.X..XX.XX.XXX...XX.XXXX...XXXX..XX.X.X.X...X...X.XXXXXXX.XX...XX..
X..X...XX..X..X....XX.X.XXX.....XX...XXX....XXX.X......XX..X..X....X.....XXXXX.XX....X............X.
X..X.X..X..XXXX.XXX.X...X...X.XX....XXXX..X..XXX.XX.XXX...XX.XXXX..X.XXX..XX......XX..XXX.XXXX.XXXX.
X.X..X..XX..XX..........XXXXX......XXX...XXX..X...X.X....X.X..X.XX...XXX..XXX.XX.XX..X....XXX....XX.
XXXXXXX..XX.X...XX..XXX.XX.XXX.X..XX.XXXXXXXX...XX..XX.X......X.....XX.X....XXXX.X.XX..XXXXXXX.X..X.
..XX....X..X..X.XX...X..X..X.XXX..X..XXXX...XXX.XX.XXX.XXXXX..X.X.X....X.XX..XXX....XXXXX........XX.
.XX.XXX...XXXXXXXX...XX...XX.XXXX...XX....X.XX...XX..XXXX..X....XXX.XXX..XXX..XXX.X.....XX.XX.X.XXX.
.....X...X...XXX..XX.XX.X.....X....XX.XXXXX.XX.X..XX..X...X...XXXXX...XX.XXXEXX.X.X.XX..X..XX.XXXXXX
XX.X.XXXX..X.........XX.X.X.XXXXXXXX........XX.XXX.XX.......XX.XX..XX.XXX..XXX...XX.XX.XX.XX...XX...
XX.X..XXX.XXX.XXXXXX.XX.X.XX.X.XXXX.XXXXX..........XXX.XXXX.XX..XX.X.....X...XXX...XX..XX.XXX.XX..XX
.X.XX.XXX.XXX...X.XX...XX.......X....X..XX.XXXXXXXX..X.XX.X.XXX.XX....XX...X.XX..X..X...XXXX..X..XXX
....XXXXXXXXX.X....X.XX...X.X.XXX.XX.X.XXXXXXXX..X.X......XXXX....XX....X.XX.XXX.XX..X.X.XXXX...X.XX
.X.X.XX....XX...XXX..XX....XX.XXX..X.X...X...XX.XX....X.X..X...X..X.XXX.X...X....XXX.X....X.XXX...XX
..XX.XX.X.XXXX.X.X...XXX.XXXX.X.XX.X..XX.XX.......XXXX.....X.XXXXX.....XXX.XX.XX...XXXXXX.X.XX..XXX.
X.X..XX.X.XXX..X.X.XXXXX.XXXX.X.XX..XXXX....X.X.XXXXX..XXXXX....X.X.XX....X.....XXXXX.............X.
.....XX.X.XX.XXX....XX.XXXXXXX...X....XX.XX.X..XX.....XX......X...X.XX..X..XXXX.X.X..XXXX..X.X.XXXX.
..XXXXX.XXXX.XXXXXX....XXX.X...XXX.X..XX.X...X.....XX.....X.X.X.X.XXXXX..XX.XX..X.X.XX....XXXX.XX.X.
X..X..X.XX....XX....XX.XXX..X.....XX.XX..X..XXXXXX.XXXX.X.X.XXX.X..X.XX.XXX..X.X..X.X..X.XXX........
X.XXX.....XXX.X...XX...XXXX...XXXXX...XXXX.XX.XX.X.XX.X.X..XXXX..X.X.XX.X....X.XX...X.XX.X.XX..XXX..
X......XX...X...X..XXX..XXXX.XXX..XX..XXXX..X.....X.X...XX.XXXX.XX.X.X...XX.X..XXX..XXXX....XX..X.X.
....X.XXXXX.XX..XX.XXX.XXX...XX.X..X....XXX.XX.XX...XX.X.X.XXXX..XXX....X.X.XX.XX..XXX...X.XX.....X.
X.XXX.XXX...X.X.XX.X....XX.X.XX...XXXXX.XXXX.....XX.XXX.....XX.XXXXX..X.X...XX..X..XXXX..XX....XX.X.
X..X..XXX.XX...X.X.X.XX.XX.X.XX.XXX.X......XX..X...X...XX.X.X..XXXXXX.X..XX.XXX...XXX....XX.X.XXXX.X
X.XXXXXX..X..XXX.XXX...XX..X..........XX.X..XX.XXX.XX.X...X...XXX.XXXXX.XXX...XXX.....XX...XX....X..
X.X........X.XX..XX..X.X..XXX.XX.XXX.XXX.XX.....XX..X.X.XX..X.X...X.XXX...X.XXXXXX.XX.XX.....XX.XX.X
X..X.XXX.X....X.....X..XXX.X...XX.XX.X.X.XX.XXX.XXXXX.....XXXXXX........XX..X.XXXX...X...X..X.X....X
XXXX..XXX..XX....XXX..X.XX...X..X....X...X..XX..XX.XX.....X....XXX...XX.....X..X...X.XXXXX.X..XXXX.X
XX.XXXXXX.XXX.XX...X......X.XX...XXX..XX..XXXX.......XX.XXXXXX..X..XXXX.XXX.XX...X...XXXXXX......X.X
.X.XX.XXX.XX..XXX.XX..XXX...XXXXXX...XXXXXXXX.XXX.XXXX..XXX..X....X.X.....XX....X..X.XX..XXX..XX..XX
....X...XXXXXXXX....XX....X...XX.XX.X.XXXXXXX.XX.XX.XXX.....X..XXXX.X.X..X..XX..X..X.XXX.XXX.XX.X...
X....X..X........XXX...XXXX..X.X..XXX...X.X...X...X.X..XXX....XXXXX....X.XX......X.X.XXX.X.X.XX....X
..XX..X..XXX.X.X..XX.X...X.......XXX....X.X..XX.X.X.XX.XX..X....XXXXXX..XX.XXX.X..XX..XX....X...XX.X
XX....XX...XXX.XX.X..XXX.XX..XXX...XXX.......X.XX.X....XX.XX.XX.XXXX.XX..X.XX..XXX....XX.X....XX....
...XX....XX.XX...XXXXX....XX.X...X..XX.XXX.X...X..XX.X.XX.XX.XX.XX...XX.XX.XXXX..X.XX....X..XX.X...X
XX...XX.....X..X....XXX.X..XXXX.X.XX.XXXXX.XX.X......X.XXXX.X......XXX.......XXX...XXX....X.....XX..
XX.X.X..X.X.XXXX.XXX...X......X......X...X.XXX..XXXXXXXXX.X.X.X.XXXX...X.XXX.X.XX.XX...X..X.XX...X.X
X..X.X..X..XX....XX.......XX.X..X...X...X..XX....XXXX.X...X.XX..XXX..XXX....X..X.R..XXXXXX..X..XX...
X.X.X..XX.XX...XXX..XXX.XXXXX..X.XX.XXX.XX.XX.....X...XXX.X.XX..XX.....X.X..XX...XX.XX.X....XXXXX.XX
..X...X.X.XXXXXXX..X....XX....XX..XX.XX....XX.X..XXX....X.X.XX....X.XXX.X..XX..XX...XX..XX.XXXX.XXXX
.XX.X...XX.....XXX.XXXXXXXX..XXXX....X.XX.X...XX..XXXXX.....XX.X.X..X...XX.X...X.XX...X......XX.XX.X
XX..XX...X.XXX.X.....X.XX.........X....X..XXX.XXXXX.XXX..XX...X..XX..X..XX..XX...XXXX.X.XXXX....XX.X
X..XXXXXXXXXX...XXX.XX.X..XX.XXX..X.X....X....X.XXX.XXXX..X.XXXX.XX.XX.X..X....XX..X..X...XXX.X..X.X
...XXXX.X...XX..XX..XX.X.XX....XX.XXXX.X.X.XX.....X.X....XX.XXXX..XXX...X.XXX.XXX.XX.XXX.XXXXXXX.X..
XX.XXX..XXX....X...XXX..XXXX..XXX..XX..X.XXX..XXX...XXX....XX..XX..XX.X.X...X.....X..X.XX.X...X.....
.......XXX...X..XX...XX.XXXXX.XX..XX..XX..X..X..XX...X..X.....X...X.X.X....XXX.XX.XX...X....X....XXX
X.XXX...XX.X..X....XXXX...XX.XXXXXX..XX...XX...X...X..XXX.XXX..XX.X....XXX..XX....XXXX.X.XXX..XXX.XX
XX....XXX..XXXX.XXXX....X.X.....XXX..XXX.XXX.XXXXXXXXXXXX...XXXXX.XXX..XXX.XX..XX..XXXXX.XXXX..X....
...X...XX.X.X.XXXXX.X.XXX.X.XXX.X.XXX....XXX..XXXXX.......X..XXX..XXX...X....XX..X.XXXXX..XX.XXX.X.X
.X.X.XX.......XX....XXXXX....XX.....XX.X...XX.X.XXX.XXX.X..XXXX.....X..XXX...XXX...X.....X...X...X.X
.XXX....X..XXXXX.X.XXXX...XXX..X.X.XXX.XXXXXX...X...XX..XX.X.XX.XXXXX.XXXXXX...X.XXXXX.XXXXX...XXX.X
..X..XXX...XXX...XXXX..X......XXX.......X.X..X..X.X.XXXXXX.......XXXX.X..XX....X.XXX.XXXXXX.XXXXXX..
X..X..XX.X.X.XX...X...XXXXXXXXXX.X..XXX...........X.XXXX.XX.X.XX.XX.....X...XX.X..XX.X.......XX..XX.
XXX.X.XXXXXX.XX.XXX.X.XXXXXXXXXX.XX.XX..XX.X..XX...XX.....X.X.XX..X.XX..XX.XXX...XXX.X.XXX.X....XXX.
.XX.XX.X...X.....X..X..XX.XX..XX..XXX..XXXXXXXX..XXXXXXXX.XXX..XXXX...XX.X.XXX.X.X.X...XX.XX.XX.....
....XX.X..XX.XXXX....XXX..XX.XXX.X.XXX.XX........XXX.X.XX.X.XXXXXXX.XXXX...XX..X.X...XX.X...X.XX.XX.
XX.....X.XXX.XXX..XX..XX.XXX..XX....XXXX.XXXX.XX.XX..........XX.....XXX..XXXX.XX...XX...XXX...XX.XX.
XX.XX....X.X.XXXXXX.X....X.XX..X.XXX......XXXXX..XXXXX.XXX.XXXXXX.....XXX.XXX.XXXX.XX.X..X..XX...XX.
.X.XX.X....X.XXXXX..X.XX....XX.....X.XXXX....XXX.XXX.X...XXX..XX..XXX..XX...XX.....XX...XXX....XX.XX
..XX...XXXXX........X.XX.XX.X..X.X.X.XX.XX.X..XX.......X.XX...XXXX.XXX.XXXX....X.XX.....XXXXX...X.XX
.XX...X....X.XXXXXX....X.XXXXX.XX........X...XXXX.XX.XXXXXXXX..XXX...X.X.X..XX.XXX..X.X..X.XXX.X....
....X..XXX.X...XXXXX.X..X..X..XXXXX.X.X.XXXX...XXXXX..XXXX....XX.XXX...X..X.XX....XX...X.X.......XXX
X.XX.XXXXX.......X..X.XX..XXX....X..X..XXXX.X..........XXXXXX....XX.X....XXXX.X.X.XXXX.XXXXXXXXX.XXX
.....X.XXX.X.XXX.X.X.....XX..XXX...XXX.XXX.......X.X.XXX..XXXXX.XX...XXX...XX...X.X.....XXXXXXXX.X..
.XX.....XXX..XXXXX...XX.X.XX...XX....X...XXX.X.X.XXXXX.XX.X.XX.....X.XX..X.X..XXX....X......X..X.X.X
XX..X.X.X...XXXX.XXX.X..X.XXXX.XX.XXX.X.X.XX..XX.....X.XX.X.XX.X.X.X.XX..XXXXX.X.XXXXXXX.XX...XXXX.X
XX.XXX....X.X....XX..XXX..XXX..XXX......X...XXXX.X.....X.......X..XX..X.X......X.XXXX...XXXXX.XXXX.X
XXXXX..XXXX...XX..XX.....XXX..XXXXX.XXXX......X..XX.X.XXX.XXX.XXX.XX.XX.X.XX.........X..X......XXX..
.X.XX.XXXX..X.XXXX....X.X..X.XX.....XXXX.....XX.XXXXX.XXX.XXXX....XX.X..XX...X.X..X.XXX....X.X..R...
...XX....XXXX..XXX.XX.XX..XX...XXXXX....X..X.XX..XX.....XXXX....X.XXXX..XXXXX.X..XX.XXXXX.XX.XXX.XXX
.X.....X.XXXX..X...XX.XXX.XXXX..X.XX.XXX..X..X..XXX..XX..XXX.X.XX.XXXXX..XXX....XXX.XX....XXX.....XX
XXX.XX.X....XX.XXX.XX.....X..........XXX.XXX....XXX.X.XX..XX.XXX..XX..XX....XX.XX..XX...XXX.X..X..XX
X...X..X.X..XX.XX..XX.X..X...XXXXXXX...X....XX.XXXX.X.XX.XXXX.XXX..XX....X.XXX..XX.X..X.XXX...XX.XXX
XXX.X.XX..XXXX....XXXXX....X...XXX.X.X.X..X.XXXXXXX...XXXX.....XXX....XXX.XX....XX..XXX..XX..X...X..
..XX..X..XXXX..XXXXX....X..XX...X..X.X...X.XX......X......XX.X.X.X.X.XX......X.X...XXXXX..XXXX..X..X
....XX.....XX..X.....X...X.XXXX.X.XXXXX.....X.X..XX..X.XX.X...X....X....XXX.XX...X....X....XXX.XX.XX
XXX....XXXXXXXX...X.X..XX..XXXX...XX....XXX...XXXX..XX..XXX.X...XXXXXXXXX...XX.X.XX.XXXXXX..XX......