// https://en.wikipedia.org/wiki/Matching_(graph_theory)#In_unweighted_bipartite_graphs in O(V * E)
fun maxMatching(graph: Array<out List<Int>>): Int {
    val n1 = graph.size
    val n2 = (graph.flatMap { it }.maxOrNull() ?: -1) + 1
    val matching = IntArray(n2) { -1 }
    return (0 until n1).sumOf { findPath(graph, it, matching, BooleanArray(n1)) }
}

fun findPath(graph: Array<out List<Int>>, u1: Int, matching: IntArray, vis: BooleanArray): Int {
    vis[u1] = true
    for (v in graph[u1]) {
        val u2 = matching[v]
        if (u2 == -1 || !vis[u2] && findPath(graph, u2, matching, vis) == 1) {
            matching[v] = u1
            return 1
        }
    }
    return 0
}

// Usage example
fun main(args: Array<String>) {
    val g = (1..2).map { arrayListOf<Int>() }.toTypedArray()
    g[0].add(0)
    g[0].add(1)
    g[1].add(1)
    println(2 == maxMatching(g))
}

Compiled from "MaxBipartiteMatchingEV.kt"
public final class MaxBipartiteMatchingEVKt {
  public static final int maxMatching(java.util.List<java.lang.Integer>[]);
    Code:
       0: aload_0
       1: ldc           #10                 // String graph
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: arraylength
       8: istore_1
       9: aload_0
      10: astore        4
      12: iconst_0
      13: istore        5
      15: aload         4
      17: astore        6
      19: new           #18                 // class java/util/ArrayList
      22: dup
      23: invokespecial #22                 // Method java/util/ArrayList."<init>":()V
      26: checkcast     #24                 // class java/util/Collection
      29: astore        7
      31: iconst_0
      32: istore        8
      34: iconst_0
      35: istore        9
      37: aload         6
      39: arraylength
      40: istore        10
      42: iload         9
      44: iload         10
      46: if_icmpge     84
      49: aload         6
      51: iload         9
      53: aaload
      54: astore        11
      56: aload         11
      58: astore        12
      60: iconst_0
      61: istore        13
      63: aload         12
      65: checkcast     #26                 // class java/lang/Iterable
      68: astore        12
      70: aload         7
      72: aload         12
      74: invokestatic  #32                 // Method kotlin/collections/CollectionsKt.addAll:(Ljava/util/Collection;Ljava/lang/Iterable;)Z
      77: pop
      78: iinc          9, 1
      81: goto          42
      84: aload         7
      86: checkcast     #34                 // class java/util/List
      89: nop
      90: checkcast     #26                 // class java/lang/Iterable
      93: invokestatic  #38                 // Method kotlin/collections/CollectionsKt.maxOrNull:(Ljava/lang/Iterable;)Ljava/lang/Comparable;
      96: checkcast     #40                 // class java/lang/Integer
      99: dup
     100: ifnull        109
     103: invokevirtual #44                 // Method java/lang/Integer.intValue:()I
     106: goto          111
     109: pop
     110: iconst_m1
     111: iconst_1
     112: iadd
     113: istore_2
     114: iconst_0
     115: istore        4
     117: iload_2
     118: newarray       int
     120: astore        5
     122: iload         4
     124: iload_2
     125: if_icmpge     144
     128: iload         4
     130: istore        6
     132: aload         5
     134: iload         6
     136: iconst_m1
     137: iastore
     138: iinc          4, 1
     141: goto          122
     144: aload         5
     146: astore_3
     147: iconst_0
     148: iload_1
     149: invokestatic  #50                 // Method kotlin/ranges/RangesKt.until:(II)Lkotlin/ranges/IntRange;
     152: checkcast     #26                 // class java/lang/Iterable
     155: astore        4
     157: iconst_0
     158: istore        5
     160: aload         4
     162: invokeinterface #54,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     167: astore        6
     169: aload         6
     171: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     176: ifeq          222
     179: aload         6
     181: checkcast     #62                 // class kotlin/collections/IntIterator
     184: invokevirtual #65                 // Method kotlin/collections/IntIterator.nextInt:()I
     187: istore        7
     189: iload         5
     191: iload         7
     193: istore        8
     195: istore        14
     197: iconst_0
     198: istore        9
     200: aload_0
     201: iload         8
     203: aload_3
     204: iload_1
     205: newarray       boolean
     207: invokestatic  #69                 // Method findPath:([Ljava/util/List;I[I[Z)I
     210: istore        15
     212: iload         14
     214: iload         15
     216: iadd
     217: istore        5
     219: goto          169
     222: iload         5
     224: ireturn

  public static final int findPath(java.util.List<java.lang.Integer>[], int, int[], boolean[]);
    Code:
       0: aload_0
       1: ldc           #10                 // String graph
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #94                 // String matching
       9: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_3
      13: ldc           #96                 // String vis
      15: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      18: aload_3
      19: iload_1
      20: iconst_1
      21: bastore
      22: aload_0
      23: iload_1
      24: aaload
      25: invokeinterface #97,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      30: astore        4
      32: aload         4
      34: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      39: ifeq          95
      42: aload         4
      44: invokeinterface #101,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      49: checkcast     #103                // class java/lang/Number
      52: invokevirtual #104                // Method java/lang/Number.intValue:()I
      55: istore        5
      57: aload_2
      58: iload         5
      60: iaload
      61: istore        6
      63: iload         6
      65: iconst_m1
      66: if_icmpeq     88
      69: aload_3
      70: iload         6
      72: baload
      73: ifne          32
      76: aload_0
      77: iload         6
      79: aload_2
      80: aload_3
      81: invokestatic  #69                 // Method findPath:([Ljava/util/List;I[I[Z)I
      84: iconst_1
      85: if_icmpne     32
      88: aload_2
      89: iload         5
      91: iload_1
      92: iastore
      93: iconst_1
      94: ireturn
      95: iconst_0
      96: ireturn

  public static final void main(java.lang.String[]);
    Code:
       0: aload_0
       1: ldc           #112                // String args
       3: invokestatic  #16                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #114                // class kotlin/ranges/IntRange
       9: dup
      10: iconst_1
      11: iconst_2
      12: invokespecial #117                // Method kotlin/ranges/IntRange."<init>":(II)V
      15: checkcast     #26                 // class java/lang/Iterable
      18: astore_2
      19: iconst_0
      20: istore_3
      21: aload_2
      22: astore        4
      24: new           #18                 // class java/util/ArrayList
      27: dup
      28: aload_2
      29: bipush        10
      31: invokestatic  #121                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      34: invokespecial #124                // Method java/util/ArrayList."<init>":(I)V
      37: checkcast     #24                 // class java/util/Collection
      40: astore        5
      42: iconst_0
      43: istore        6
      45: aload         4
      47: invokeinterface #54,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      52: astore        7
      54: aload         7
      56: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      61: ifeq          105
      64: aload         7
      66: checkcast     #62                 // class kotlin/collections/IntIterator
      69: invokevirtual #65                 // Method kotlin/collections/IntIterator.nextInt:()I
      72: istore        8
      74: aload         5
      76: iload         8
      78: istore        9
      80: astore        11
      82: iconst_0
      83: istore        10
      85: new           #18                 // class java/util/ArrayList
      88: dup
      89: invokespecial #22                 // Method java/util/ArrayList."<init>":()V
      92: nop
      93: aload         11
      95: swap
      96: invokeinterface #128,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     101: pop
     102: goto          54
     105: aload         5
     107: checkcast     #34                 // class java/util/List
     110: nop
     111: checkcast     #24                 // class java/util/Collection
     114: astore_2
     115: nop
     116: iconst_0
     117: istore_3
     118: aload_2
     119: astore        4
     121: aload         4
     123: iconst_0
     124: anewarray     #18                 // class java/util/ArrayList
     127: invokeinterface #132,  2          // InterfaceMethod java/util/Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
     132: checkcast     #134                // class "[Ljava/util/ArrayList;"
     135: astore_1
     136: aload_1
     137: iconst_0
     138: aaload
     139: iconst_0
     140: invokestatic  #138                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     143: invokevirtual #139                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     146: pop
     147: aload_1
     148: iconst_0
     149: aaload
     150: iconst_1
     151: invokestatic  #138                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     154: invokevirtual #139                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     157: pop
     158: aload_1
     159: iconst_1
     160: aaload
     161: iconst_1
     162: invokestatic  #138                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     165: invokevirtual #139                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     168: pop
     169: iconst_2
     170: aload_1
     171: checkcast     #91                 // class "[Ljava/util/List;"
     174: invokestatic  #141                // Method maxMatching:([Ljava/util/List;)I
     177: if_icmpne     184
     180: iconst_1
     181: goto          185
     184: iconst_0
     185: istore_2
     186: getstatic     #147                // Field java/lang/System.out:Ljava/io/PrintStream;
     189: iload_2
     190: invokevirtual #153                // Method java/io/PrintStream.println:(Z)V
     193: return
}


import java.nio.file.Files
import java.nio.file.Path

object Day02 {
    private val map1 = mapOf("X" to 1, "Y" to 2, "Z" to 3)
    private val map2 = mapOf(
        "A X" to 3, "A Y" to 6, "A Z" to 0,
        "B X" to 0, "B Y" to 3, "B Z" to 6,
        "C X" to 6, "C Y" to 0, "C Z" to 3,
    )

    private val list = listOf(
        "001", "012", "020",
        "100", "111", "122",
        "202", "210", "221"
    )

    fun toDigi(t: String): Char {
        return when (t) {
            "X", "A" -> '0'
            "Y", "B" -> '1'
            else -> '2'
        }
    }

    fun part1(data: List<String>) {
        var sum = 0
        for (s in data) {
            val k = s.split(" ")
            val m = toDigi(k[0])
            val n = toDigi(k[1])
            for (t in list) {
                if (t[0] == m && t[1] == n) {
                    sum += when (t[1]) {
                        '0' -> 1
                        '1' -> 2
                        else -> 3
                    }
                    sum += when (t[2]) {
                        '0' -> 0
                        '1' -> 3
                        else -> 6
                    }
                }
            }
//            sum += map1[s.split(" ")[1]]!!
//            sum += map2[s]!!
        }
        println(sum) //8890
    }

    fun part2(data: List<String>) {
        var sum = 0
        for (s in data) {
            val k = s.split(" ")
            val m = toDigi(k[0])
            val n = toDigi(k[1])
            for (t in list) {
                if (t[0] == m && t[2] == n) {
                    sum += when (t[1]) {
                        '0' -> 1
                        '1' -> 2
                        else -> 3
                    }
                    sum += when (t[2]) {
                        '0' -> 0
                        '1' -> 3
                        else -> 6
                    }
                }
            }
        }
        println(sum)
    }
}

fun main() {
    val data = Files.readAllLines(Path.of("./input/Day02.txt"))

    Day02.part1(data)
    Day02.part2(data)
}

Compiled from "Day02.kt"
public final class Day02Kt {
  public static final void main();
    Code:
       0: ldc           #8                  // String ./input/Day02.txt
       2: iconst_0
       3: anewarray     #10                 // class java/lang/String
       6: invokestatic  #16                 // InterfaceMethod java/nio/file/Path.of:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
       9: invokestatic  #22                 // Method java/nio/file/Files.readAllLines:(Ljava/nio/file/Path;)Ljava/util/List;
      12: astore_0
      13: getstatic     #28                 // Field Day02.INSTANCE:LDay02;
      16: aload_0
      17: invokestatic  #34                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      20: aload_0
      21: invokevirtual #38                 // Method Day02.part1:(Ljava/util/List;)V
      24: getstatic     #28                 // Field Day02.INSTANCE:LDay02;
      27: aload_0
      28: invokevirtual #41                 // Method Day02.part2:(Ljava/util/List;)V
      31: return

  public static void main(java.lang.String[]);
    Code:
       0: invokestatic  #46                 // Method main:()V
       3: return
}

Compiled from "Day02.kt"
public final class Day02 {
  public static final Day02 INSTANCE;

  private static final java.util.Map<java.lang.String, java.lang.Integer> map1;

  private static final java.util.Map<java.lang.String, java.lang.Integer> map2;

  private static final java.util.List<java.lang.String> list;

  private Day02();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public final char toDigi(java.lang.String);
    Code:
       0: aload_1
       1: ldc           #15                 // String t
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: astore_2
       8: aload_2
       9: invokevirtual #27                 // Method java/lang/String.hashCode:()I
      12: lookupswitch  { // 4
                    65: 56
                    66: 68
                    88: 80
                    89: 92
               default: 114
          }
      56: aload_2
      57: ldc           #29                 // String A
      59: invokevirtual #33                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      62: ifne          104
      65: goto          114
      68: aload_2
      69: ldc           #35                 // String B
      71: invokevirtual #33                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      74: ifne          109
      77: goto          114
      80: aload_2
      81: ldc           #37                 // String X
      83: invokevirtual #33                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      86: ifne          104
      89: goto          114
      92: aload_2
      93: ldc           #39                 // String Y
      95: invokevirtual #33                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z
      98: ifne          109
     101: goto          114
     104: bipush        48
     106: goto          116
     109: bipush        49
     111: goto          116
     114: bipush        50
     116: ireturn

  public final void part1(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #45                 // String data
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: iconst_0
       7: istore_2
       8: aload_1
       9: invokeinterface #51,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      14: astore_3
      15: aload_3
      16: invokeinterface #57,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      21: ifeq          235
      24: aload_3
      25: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      30: checkcast     #23                 // class java/lang/String
      33: astore        4
      35: aload         4
      37: checkcast     #63                 // class java/lang/CharSequence
      40: iconst_1
      41: anewarray     #23                 // class java/lang/String
      44: astore        6
      46: aload         6
      48: iconst_0
      49: ldc           #65                 // String
      51: aastore
      52: aload         6
      54: iconst_0
      55: iconst_0
      56: bipush        6
      58: aconst_null
      59: invokestatic  #71                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      62: astore        5
      64: aload_0
      65: aload         5
      67: iconst_0
      68: invokeinterface #75,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      73: checkcast     #23                 // class java/lang/String
      76: invokevirtual #77                 // Method toDigi:(Ljava/lang/String;)C
      79: istore        6
      81: aload_0
      82: aload         5
      84: iconst_1
      85: invokeinterface #75,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      90: checkcast     #23                 // class java/lang/String
      93: invokevirtual #77                 // Method toDigi:(Ljava/lang/String;)C
      96: istore        7
      98: getstatic     #81                 // Field list:Ljava/util/List;
     101: invokeinterface #51,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     106: astore        8
     108: aload         8
     110: invokeinterface #57,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     115: ifeq          15
     118: aload         8
     120: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     125: checkcast     #23                 // class java/lang/String
     128: astore        9
     130: aload         9
     132: iconst_0
     133: invokevirtual #85                 // Method java/lang/String.charAt:(I)C
     136: iload         6
     138: if_icmpne     108
     141: aload         9
     143: iconst_1
     144: invokevirtual #85                 // Method java/lang/String.charAt:(I)C
     147: iload         7
     149: if_icmpne     108
     152: iload_2
     153: aload         9
     155: iconst_1
     156: invokevirtual #85                 // Method java/lang/String.charAt:(I)C
     159: tableswitch   { // 48 to 49
                    48: 180
                    49: 184
               default: 188
          }
     180: iconst_1
     181: goto          189
     184: iconst_2
     185: goto          189
     188: iconst_3
     189: iadd
     190: istore_2
     191: iload_2
     192: aload         9
     194: iconst_2
     195: invokevirtual #85                 // Method java/lang/String.charAt:(I)C
     198: tableswitch   { // 48 to 49
                    48: 220
                    49: 224
               default: 228
          }
     220: iconst_0
     221: goto          230
     224: iconst_3
     225: goto          230
     228: bipush        6
     230: iadd
     231: istore_2
     232: goto          108
     235: getstatic     #91                 // Field java/lang/System.out:Ljava/io/PrintStream;
     238: iload_2
     239: invokevirtual #97                 // Method java/io/PrintStream.println:(I)V
     242: return

  public final void part2(java.util.List<java.lang.String>);
    Code:
       0: aload_1
       1: ldc           #45                 // String data
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: iconst_0
       7: istore_2
       8: aload_1
       9: invokeinterface #51,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      14: astore_3
      15: aload_3
      16: invokeinterface #57,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      21: ifeq          235
      24: aload_3
      25: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      30: checkcast     #23                 // class java/lang/String
      33: astore        4
      35: aload         4
      37: checkcast     #63                 // class java/lang/CharSequence
      40: iconst_1
      41: anewarray     #23                 // class java/lang/String
      44: astore        6
      46: aload         6
      48: iconst_0
      49: ldc           #65                 // String
      51: aastore
      52: aload         6
      54: iconst_0
      55: iconst_0
      56: bipush        6
      58: aconst_null
      59: invokestatic  #71                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      62: astore        5
      64: aload_0
      65: aload         5
      67: iconst_0
      68: invokeinterface #75,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      73: checkcast     #23                 // class java/lang/String
      76: invokevirtual #77                 // Method toDigi:(Ljava/lang/String;)C
      79: istore        6
      81: aload_0
      82: aload         5
      84: iconst_1
      85: invokeinterface #75,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      90: checkcast     #23                 // class java/lang/String
      93: invokevirtual #77                 // Method toDigi:(Ljava/lang/String;)C
      96: istore        7
      98: getstatic     #81                 // Field list:Ljava/util/List;
     101: invokeinterface #51,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     106: astore        8
     108: aload         8
     110: invokeinterface #57,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     115: ifeq          15
     118: aload         8
     120: invokeinterface #61,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     125: checkcast     #23                 // class java/lang/String
     128: astore        9
     130: aload         9
     132: iconst_0
     133: invokevirtual #85                 // Method java/lang/String.charAt:(I)C
     136: iload         6
     138: if_icmpne     108
     141: aload         9
     143: iconst_2
     144: invokevirtual #85                 // Method java/lang/String.charAt:(I)C
     147: iload         7
     149: if_icmpne     108
     152: iload_2
     153: aload         9
     155: iconst_1
     156: invokevirtual #85                 // Method java/lang/String.charAt:(I)C
     159: tableswitch   { // 48 to 49
                    48: 180
                    49: 184
               default: 188
          }
     180: iconst_1
     181: goto          189
     184: iconst_2
     185: goto          189
     188: iconst_3
     189: iadd
     190: istore_2
     191: iload_2
     192: aload         9
     194: iconst_2
     195: invokevirtual #85                 // Method java/lang/String.charAt:(I)C
     198: tableswitch   { // 48 to 49
                    48: 220
                    49: 224
               default: 228
          }
     220: iconst_0
     221: goto          230
     224: iconst_3
     225: goto          230
     228: bipush        6
     230: iadd
     231: istore_2
     232: goto          108
     235: getstatic     #91                 // Field java/lang/System.out:Ljava/io/PrintStream;
     238: iload_2
     239: invokevirtual #97                 // Method java/io/PrintStream.println:(I)V
     242: return

  static {};
    Code:
       0: new           #2                  // class Day02
       3: dup
       4: invokespecial #107                // Method "<init>":()V
       7: putstatic     #110                // Field INSTANCE:LDay02;
      10: iconst_3
      11: anewarray     #112                // class kotlin/Pair
      14: astore_0
      15: aload_0
      16: iconst_0
      17: ldc           #37                 // String X
      19: iconst_1
      20: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      23: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      26: aastore
      27: aload_0
      28: iconst_1
      29: ldc           #39                 // String Y
      31: iconst_2
      32: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      35: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      38: aastore
      39: aload_0
      40: iconst_2
      41: ldc           #126                // String Z
      43: iconst_3
      44: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      47: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      50: aastore
      51: aload_0
      52: invokestatic  #132                // Method kotlin/collections/MapsKt.mapOf:([Lkotlin/Pair;)Ljava/util/Map;
      55: putstatic     #136                // Field map1:Ljava/util/Map;
      58: bipush        9
      60: anewarray     #112                // class kotlin/Pair
      63: astore_0
      64: aload_0
      65: iconst_0
      66: ldc           #138                // String A X
      68: iconst_3
      69: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      72: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      75: aastore
      76: aload_0
      77: iconst_1
      78: ldc           #140                // String A Y
      80: bipush        6
      82: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      85: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      88: aastore
      89: aload_0
      90: iconst_2
      91: ldc           #142                // String A Z
      93: iconst_0
      94: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      97: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     100: aastore
     101: aload_0
     102: iconst_3
     103: ldc           #144                // String B X
     105: iconst_0
     106: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     109: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     112: aastore
     113: aload_0
     114: iconst_4
     115: ldc           #146                // String B Y
     117: iconst_3
     118: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     121: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     124: aastore
     125: aload_0
     126: iconst_5
     127: ldc           #148                // String B Z
     129: bipush        6
     131: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     134: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     137: aastore
     138: aload_0
     139: bipush        6
     141: ldc           #150                // String C X
     143: bipush        6
     145: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     148: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     151: aastore
     152: aload_0
     153: bipush        7
     155: ldc           #152                // String C Y
     157: iconst_0
     158: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     161: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     164: aastore
     165: aload_0
     166: bipush        8
     168: ldc           #154                // String C Z
     170: iconst_3
     171: invokestatic  #118                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     174: invokestatic  #124                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     177: aastore
     178: aload_0
     179: invokestatic  #132                // Method kotlin/collections/MapsKt.mapOf:([Lkotlin/Pair;)Ljava/util/Map;
     182: putstatic     #157                // Field map2:Ljava/util/Map;
     185: bipush        9
     187: anewarray     #23                 // class java/lang/String
     190: astore_0
     191: aload_0
     192: iconst_0
     193: ldc           #159                // String 001
     195: aastore
     196: aload_0
     197: iconst_1
     198: ldc           #161                // String 012
     200: aastore
     201: aload_0
     202: iconst_2
     203: ldc           #163                // String 020
     205: aastore
     206: aload_0
     207: iconst_3
     208: ldc           #165                // String 100
     210: aastore
     211: aload_0
     212: iconst_4
     213: ldc           #167                // String 111
     215: aastore
     216: aload_0
     217: iconst_5
     218: ldc           #169                // String 122
     220: aastore
     221: aload_0
     222: bipush        6
     224: ldc           #171                // String 202
     226: aastore
     227: aload_0
     228: bipush        7
     230: ldc           #173                // String 210
     232: aastore
     233: aload_0
     234: bipush        8
     236: ldc           #175                // String 221
     238: aastore
     239: aload_0
     240: invokestatic  #181                // Method kotlin/collections/CollectionsKt.listOf:([Ljava/lang/Object;)Ljava/util/List;
     243: putstatic     #81                 // Field list:Ljava/util/List;
     246: return
}


import java.io.File
import java.math.BigInteger
import java.security.MessageDigest
import kotlin.math.absoluteValue
import kotlin.math.sign

fun Boolean.toInt() = if (this) 1 else 0

fun IntProgression.isRange() = step.sign > 0

operator fun <T> List<List<T>>.get(ind: Pair<Int, Int>) = this[ind.first][ind.second]

operator fun <T> List<MutableList<T>>.set(ind: Pair<Int, Int>, value: T) {
    this[ind.first][ind.second] = value
}

fun <T> List<List<T>>.indexPairs(predicate: (T) -> Boolean = { true }) =
    this.indices.flatMap { i ->
        this.first().indices.map { j -> i to j }
    }.filter { predicate(this[it]) }

operator fun Pair<Int, Int>.plus(other: Pair<Int, Int>) = first + other.first to second + other.second

operator fun Pair<Int, Int>.minus(other: Pair<Int, Int>) = first - other.first to second - other.second

fun Pair<Int, Int>.diff() = (second - first).absoluteValue

operator fun <T, K> Pair<T, K>.compareTo(other: Pair<T, K>) where T : Comparable<T>, K : Comparable<K> =
    if (first == other.first) second.compareTo(other.second) else first.compareTo(other.first)

infix fun Pair<Int, Int>.manhattan(other: Pair<Int, Int>) =
    (first - other.first).absoluteValue + (second - other.second).absoluteValue

/**
 * Pairs intersect as ranges.
 */
fun <T> Pair<T, T>.intersect(other: Pair<T, T>) where T : Comparable<T> =
    if (this.compareTo(other) < 0) second >= other.first else first <= other.second

/**
 * One of pairs fully includes other as range.
 */
fun <T, K> Pair<T, K>.include(other: Pair<T, K>) where T : Comparable<T>, K : Comparable<K> =
    first.compareTo(other.first).sign + second.compareTo(other.second).sign in -1..1

/**
 * Returns list of pairs with indexes of non-diagonal neighbours' shifts in 2D array.
 */
fun neighbours() =
    (-1..1).flatMap { i ->
        (-1..1).filter { j -> (i + j).absoluteValue == 1 }.map { j -> i to j }
    }

/**
 * Returns list of pairs with indexes of given point non-diagonal neighbours in 2D array.
 */
fun neighbours(point: Pair<Int, Int>) = neighbours().map { it + point }

/**
 * Reads lines from the given input txt file.
 */
fun readInput(name: String) = File("src", "$name.txt")
    .readLines()

/**
 * Reads blocks of lines separated by empty line.
 */
fun readBlocks(name: String) = File("src", "$name.txt")
    .readText()
    .trim('\n')
    .split("\n\n")
    .map { it.split('\n') }

/**
 * Reads blocks separated by empty line.
 */
fun readRawBlocks(name: String) = File("src", "$name.txt")
    .readText()
    .trim('\n')
    .split("\n\n")

/**
 * Converts string to md5 hash.
 */
fun String.md5() = BigInteger(1, MessageDigest.getInstance("MD5").digest(toByteArray()))
    .toString(16)
    .padStart(32, '0')

Compiled from "Utils.kt"
public final class UtilsKt {
  public static final int toInt(boolean);
    Code:
       0: iload_0
       1: ifeq          8
       4: iconst_1
       5: goto          9
       8: iconst_0
       9: ireturn

  public static final boolean isRange(kotlin.ranges.IntProgression);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: invokevirtual #25                 // Method kotlin/ranges/IntProgression.getStep:()I
      10: invokestatic  #31                 // Method kotlin/math/MathKt.getSign:(I)I
      13: ifle          20
      16: iconst_1
      17: goto          21
      20: iconst_0
      21: ireturn

  public static final <T> T get(java.util.List<? extends java.util.List<? extends T>>, kotlin.Pair<java.lang.Integer, java.lang.Integer>);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #38                 // String ind
       9: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: aload_1
      14: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      17: checkcast     #46                 // class java/lang/Number
      20: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      23: invokeinterface #54,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      28: checkcast     #51                 // class java/util/List
      31: aload_1
      32: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      35: checkcast     #46                 // class java/lang/Number
      38: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      41: invokeinterface #54,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      46: areturn

  public static final <T> void set(java.util.List<? extends java.util.List<T>>, kotlin.Pair<java.lang.Integer, java.lang.Integer>, T);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #38                 // String ind
       9: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: aload_1
      14: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      17: checkcast     #46                 // class java/lang/Number
      20: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      23: invokeinterface #54,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      28: checkcast     #51                 // class java/util/List
      31: aload_1
      32: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      35: checkcast     #46                 // class java/lang/Number
      38: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      41: aload_2
      42: invokeinterface #66,  3           // InterfaceMethod java/util/List.set:(ILjava/lang/Object;)Ljava/lang/Object;
      47: pop
      48: return

  public static final <T> java.util.List<kotlin.Pair<java.lang.Integer, java.lang.Integer>> indexPairs(java.util.List<? extends java.util.List<? extends T>>, kotlin.jvm.functions.Function1<? super T, java.lang.Boolean>);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #74                 // String predicate
       9: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: checkcast     #76                 // class java/util/Collection
      16: invokestatic  #82                 // Method kotlin/collections/CollectionsKt.getIndices:(Ljava/util/Collection;)Lkotlin/ranges/IntRange;
      19: checkcast     #84                 // class java/lang/Iterable
      22: astore_2
      23: iconst_0
      24: istore_3
      25: aload_2
      26: astore        4
      28: new           #86                 // class java/util/ArrayList
      31: dup
      32: invokespecial #90                 // Method java/util/ArrayList."<init>":()V
      35: checkcast     #76                 // class java/util/Collection
      38: astore        5
      40: iconst_0
      41: istore        6
      43: aload         4
      45: invokeinterface #94,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      50: astore        7
      52: aload         7
      54: invokeinterface #100,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      59: ifeq          211
      62: aload         7
      64: checkcast     #102                // class kotlin/collections/IntIterator
      67: invokevirtual #105                // Method kotlin/collections/IntIterator.nextInt:()I
      70: istore        8
      72: iload         8
      74: istore        9
      76: iconst_0
      77: istore        10
      79: aload_0
      80: invokestatic  #109                // Method kotlin/collections/CollectionsKt.first:(Ljava/util/List;)Ljava/lang/Object;
      83: checkcast     #76                 // class java/util/Collection
      86: invokestatic  #82                 // Method kotlin/collections/CollectionsKt.getIndices:(Ljava/util/Collection;)Lkotlin/ranges/IntRange;
      89: checkcast     #84                 // class java/lang/Iterable
      92: astore        11
      94: iconst_0
      95: istore        12
      97: aload         11
      99: astore        13
     101: new           #86                 // class java/util/ArrayList
     104: dup
     105: aload         11
     107: bipush        10
     109: invokestatic  #113                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     112: invokespecial #116                // Method java/util/ArrayList."<init>":(I)V
     115: checkcast     #76                 // class java/util/Collection
     118: astore        14
     120: iconst_0
     121: istore        15
     123: aload         13
     125: invokeinterface #94,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     130: astore        16
     132: aload         16
     134: invokeinterface #100,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     139: ifeq          188
     142: aload         16
     144: checkcast     #102                // class kotlin/collections/IntIterator
     147: invokevirtual #105                // Method kotlin/collections/IntIterator.nextInt:()I
     150: istore        17
     152: aload         14
     154: iload         17
     156: istore        18
     158: astore        19
     160: iconst_0
     161: istore        20
     163: iload         9
     165: invokestatic  #122                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     168: iload         18
     170: invokestatic  #122                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     173: invokestatic  #128                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     176: aload         19
     178: swap
     179: invokeinterface #132,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     184: pop
     185: goto          132
     188: aload         14
     190: checkcast     #51                 // class java/util/List
     193: nop
     194: checkcast     #84                 // class java/lang/Iterable
     197: nop
     198: astore        9
     200: aload         5
     202: aload         9
     204: invokestatic  #136                // Method kotlin/collections/CollectionsKt.addAll:(Ljava/util/Collection;Ljava/lang/Iterable;)Z
     207: pop
     208: goto          52
     211: aload         5
     213: checkcast     #51                 // class java/util/List
     216: nop
     217: checkcast     #84                 // class java/lang/Iterable
     220: astore_2
     221: nop
     222: iconst_0
     223: istore_3
     224: aload_2
     225: astore        4
     227: new           #86                 // class java/util/ArrayList
     230: dup
     231: invokespecial #90                 // Method java/util/ArrayList."<init>":()V
     234: checkcast     #76                 // class java/util/Collection
     237: astore        5
     239: iconst_0
     240: istore        6
     242: aload         4
     244: invokeinterface #94,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     249: astore        7
     251: aload         7
     253: invokeinterface #100,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     258: ifeq          314
     261: aload         7
     263: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     268: astore        8
     270: aload         8
     272: checkcast     #40                 // class kotlin/Pair
     275: astore        9
     277: iconst_0
     278: istore        10
     280: aload_1
     281: aload_0
     282: aload         9
     284: invokestatic  #141                // Method get:(Ljava/util/List;Lkotlin/Pair;)Ljava/lang/Object;
     287: invokeinterface #147,  2          // InterfaceMethod kotlin/jvm/functions/Function1.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
     292: checkcast     #149                // class java/lang/Boolean
     295: invokevirtual #152                // Method java/lang/Boolean.booleanValue:()Z
     298: ifeq          251
     301: aload         5
     303: aload         8
     305: invokeinterface #132,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     310: pop
     311: goto          251
     314: aload         5
     316: checkcast     #51                 // class java/util/List
     319: nop
     320: areturn

  public static java.util.List indexPairs$default(java.util.List, kotlin.jvm.functions.Function1, int, java.lang.Object);
    Code:
       0: iload_2
       1: iconst_1
       2: iand
       3: ifeq          12
       6: invokedynamic #198,  0            // InvokeDynamic #0:invoke:()Lkotlin/jvm/functions/Function1;
      11: astore_1
      12: aload_0
      13: aload_1
      14: invokestatic  #200                // Method indexPairs:(Ljava/util/List;Lkotlin/jvm/functions/Function1;)Ljava/util/List;
      17: areturn

  public static final kotlin.Pair<java.lang.Integer, java.lang.Integer> plus(kotlin.Pair<java.lang.Integer, java.lang.Integer>, kotlin.Pair<java.lang.Integer, java.lang.Integer>);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #205                // String other
       9: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      16: checkcast     #46                 // class java/lang/Number
      19: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      22: aload_1
      23: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      26: checkcast     #46                 // class java/lang/Number
      29: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      32: iadd
      33: invokestatic  #122                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      36: aload_0
      37: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      40: checkcast     #46                 // class java/lang/Number
      43: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      46: aload_1
      47: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      50: checkcast     #46                 // class java/lang/Number
      53: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      56: iadd
      57: invokestatic  #122                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      60: invokestatic  #128                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      63: areturn

  public static final kotlin.Pair<java.lang.Integer, java.lang.Integer> minus(kotlin.Pair<java.lang.Integer, java.lang.Integer>, kotlin.Pair<java.lang.Integer, java.lang.Integer>);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #205                // String other
       9: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      16: checkcast     #46                 // class java/lang/Number
      19: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      22: aload_1
      23: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      26: checkcast     #46                 // class java/lang/Number
      29: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      32: isub
      33: invokestatic  #122                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      36: aload_0
      37: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      40: checkcast     #46                 // class java/lang/Number
      43: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      46: aload_1
      47: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      50: checkcast     #46                 // class java/lang/Number
      53: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      56: isub
      57: invokestatic  #122                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      60: invokestatic  #128                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      63: areturn

  public static final int diff(kotlin.Pair<java.lang.Integer, java.lang.Integer>);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      10: checkcast     #46                 // class java/lang/Number
      13: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      16: aload_0
      17: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      20: checkcast     #46                 // class java/lang/Number
      23: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      26: isub
      27: invokestatic  #216                // Method java/lang/Math.abs:(I)I
      30: ireturn

  public static final <T extends java.lang.Comparable<? super T>, K extends java.lang.Comparable<? super K>> int compareTo(kotlin.Pair<? extends T, ? extends K>, kotlin.Pair<? extends T, ? extends K>);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #205                // String other
       9: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      16: aload_1
      17: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      20: invokestatic  #224                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      23: ifeq          45
      26: aload_0
      27: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      30: checkcast     #226                // class java/lang/Comparable
      33: aload_1
      34: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      37: invokeinterface #229,  2          // InterfaceMethod java/lang/Comparable.compareTo:(Ljava/lang/Object;)I
      42: goto          61
      45: aload_0
      46: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      49: checkcast     #226                // class java/lang/Comparable
      52: aload_1
      53: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      56: invokeinterface #229,  2          // InterfaceMethod java/lang/Comparable.compareTo:(Ljava/lang/Object;)I
      61: ireturn

  public static final int manhattan(kotlin.Pair<java.lang.Integer, java.lang.Integer>, kotlin.Pair<java.lang.Integer, java.lang.Integer>);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #205                // String other
       9: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      16: checkcast     #46                 // class java/lang/Number
      19: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      22: aload_1
      23: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      26: checkcast     #46                 // class java/lang/Number
      29: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      32: isub
      33: invokestatic  #216                // Method java/lang/Math.abs:(I)I
      36: aload_0
      37: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      40: checkcast     #46                 // class java/lang/Number
      43: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      46: aload_1
      47: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      50: checkcast     #46                 // class java/lang/Number
      53: invokevirtual #49                 // Method java/lang/Number.intValue:()I
      56: isub
      57: invokestatic  #216                // Method java/lang/Math.abs:(I)I
      60: iadd
      61: ireturn

  public static final <T extends java.lang.Comparable<? super T>> boolean intersect(kotlin.Pair<? extends T, ? extends T>, kotlin.Pair<? extends T, ? extends T>);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #205                // String other
       9: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: aload_1
      14: invokestatic  #238                // Method compareTo:(Lkotlin/Pair;Lkotlin/Pair;)I
      17: ifge          47
      20: aload_0
      21: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      24: checkcast     #226                // class java/lang/Comparable
      27: aload_1
      28: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      31: invokeinterface #229,  2          // InterfaceMethod java/lang/Comparable.compareTo:(Ljava/lang/Object;)I
      36: iflt          43
      39: iconst_1
      40: goto          71
      43: iconst_0
      44: goto          71
      47: aload_0
      48: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      51: checkcast     #226                // class java/lang/Comparable
      54: aload_1
      55: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      58: invokeinterface #229,  2          // InterfaceMethod java/lang/Comparable.compareTo:(Ljava/lang/Object;)I
      63: ifgt          70
      66: iconst_1
      67: goto          71
      70: iconst_0
      71: ireturn

  public static final <T extends java.lang.Comparable<? super T>, K extends java.lang.Comparable<? super K>> boolean include(kotlin.Pair<? extends T, ? extends K>, kotlin.Pair<? extends T, ? extends K>);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: ldc           #205                // String other
       9: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_0
      13: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      16: checkcast     #226                // class java/lang/Comparable
      19: aload_1
      20: invokevirtual #44                 // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
      23: invokeinterface #229,  2          // InterfaceMethod java/lang/Comparable.compareTo:(Ljava/lang/Object;)I
      28: invokestatic  #31                 // Method kotlin/math/MathKt.getSign:(I)I
      31: aload_0
      32: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      35: checkcast     #226                // class java/lang/Comparable
      38: aload_1
      39: invokevirtual #57                 // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      42: invokeinterface #229,  2          // InterfaceMethod java/lang/Comparable.compareTo:(Ljava/lang/Object;)I
      47: invokestatic  #31                 // Method kotlin/math/MathKt.getSign:(I)I
      50: iadd
      51: istore_2
      52: iconst_m1
      53: iload_2
      54: if_icmpgt     70
      57: iload_2
      58: iconst_2
      59: if_icmpge     66
      62: iconst_1
      63: goto          71
      66: iconst_0
      67: goto          71
      70: iconst_0
      71: ireturn

  public static final java.util.List<kotlin.Pair<java.lang.Integer, java.lang.Integer>> neighbours();
    Code:
       0: new           #247                // class kotlin/ranges/IntRange
       3: dup
       4: iconst_m1
       5: iconst_1
       6: invokespecial #250                // Method kotlin/ranges/IntRange."<init>":(II)V
       9: checkcast     #84                 // class java/lang/Iterable
      12: astore_0
      13: iconst_0
      14: istore_1
      15: aload_0
      16: astore_2
      17: new           #86                 // class java/util/ArrayList
      20: dup
      21: invokespecial #90                 // Method java/util/ArrayList."<init>":()V
      24: checkcast     #76                 // class java/util/Collection
      27: astore_3
      28: iconst_0
      29: istore        4
      31: aload_2
      32: invokeinterface #94,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      37: astore        5
      39: aload         5
      41: invokeinterface #100,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      46: ifeq          309
      49: aload         5
      51: checkcast     #102                // class kotlin/collections/IntIterator
      54: invokevirtual #105                // Method kotlin/collections/IntIterator.nextInt:()I
      57: istore        6
      59: iload         6
      61: istore        7
      63: iconst_0
      64: istore        8
      66: new           #247                // class kotlin/ranges/IntRange
      69: dup
      70: iconst_m1
      71: iconst_1
      72: invokespecial #250                // Method kotlin/ranges/IntRange."<init>":(II)V
      75: checkcast     #84                 // class java/lang/Iterable
      78: astore        9
      80: iconst_0
      81: istore        10
      83: aload         9
      85: astore        11
      87: new           #86                 // class java/util/ArrayList
      90: dup
      91: invokespecial #90                 // Method java/util/ArrayList."<init>":()V
      94: checkcast     #76                 // class java/util/Collection
      97: astore        12
      99: iconst_0
     100: istore        13
     102: aload         11
     104: invokeinterface #94,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     109: astore        14
     111: aload         14
     113: invokeinterface #100,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     118: ifeq          176
     121: aload         14
     123: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     128: astore        15
     130: aload         15
     132: checkcast     #46                 // class java/lang/Number
     135: invokevirtual #49                 // Method java/lang/Number.intValue:()I
     138: istore        16
     140: iconst_0
     141: istore        17
     143: iload         7
     145: iload         16
     147: iadd
     148: invokestatic  #216                // Method java/lang/Math.abs:(I)I
     151: iconst_1
     152: if_icmpne     159
     155: iconst_1
     156: goto          160
     159: iconst_0
     160: ifeq          111
     163: aload         12
     165: aload         15
     167: invokeinterface #132,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     172: pop
     173: goto          111
     176: aload         12
     178: checkcast     #51                 // class java/util/List
     181: nop
     182: checkcast     #84                 // class java/lang/Iterable
     185: astore        9
     187: nop
     188: iconst_0
     189: istore        10
     191: aload         9
     193: astore        11
     195: new           #86                 // class java/util/ArrayList
     198: dup
     199: aload         9
     201: bipush        10
     203: invokestatic  #113                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     206: invokespecial #116                // Method java/util/ArrayList."<init>":(I)V
     209: checkcast     #76                 // class java/util/Collection
     212: astore        12
     214: iconst_0
     215: istore        13
     217: aload         11
     219: invokeinterface #94,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     224: astore        14
     226: aload         14
     228: invokeinterface #100,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     233: ifeq          287
     236: aload         14
     238: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     243: astore        15
     245: aload         12
     247: aload         15
     249: checkcast     #46                 // class java/lang/Number
     252: invokevirtual #49                 // Method java/lang/Number.intValue:()I
     255: istore        16
     257: astore        18
     259: iconst_0
     260: istore        17
     262: iload         7
     264: invokestatic  #122                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     267: iload         16
     269: invokestatic  #122                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     272: invokestatic  #128                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     275: aload         18
     277: swap
     278: invokeinterface #132,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     283: pop
     284: goto          226
     287: aload         12
     289: checkcast     #51                 // class java/util/List
     292: nop
     293: checkcast     #84                 // class java/lang/Iterable
     296: nop
     297: astore        7
     299: aload_3
     300: aload         7
     302: invokestatic  #136                // Method kotlin/collections/CollectionsKt.addAll:(Ljava/util/Collection;Ljava/lang/Iterable;)Z
     305: pop
     306: goto          39
     309: aload_3
     310: checkcast     #51                 // class java/util/List
     313: nop
     314: areturn

  public static final java.util.List<kotlin.Pair<java.lang.Integer, java.lang.Integer>> neighbours(kotlin.Pair<java.lang.Integer, java.lang.Integer>);
    Code:
       0: aload_0
       1: ldc_w         #257                // String point
       4: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: invokestatic  #259                // Method neighbours:()Ljava/util/List;
      10: checkcast     #84                 // class java/lang/Iterable
      13: astore_1
      14: iconst_0
      15: istore_2
      16: aload_1
      17: astore_3
      18: new           #86                 // class java/util/ArrayList
      21: dup
      22: aload_1
      23: bipush        10
      25: invokestatic  #113                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      28: invokespecial #116                // Method java/util/ArrayList."<init>":(I)V
      31: checkcast     #76                 // class java/util/Collection
      34: astore        4
      36: iconst_0
      37: istore        5
      39: aload_3
      40: invokeinterface #94,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      45: astore        6
      47: aload         6
      49: invokeinterface #100,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      54: ifeq          98
      57: aload         6
      59: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      64: astore        7
      66: aload         4
      68: aload         7
      70: checkcast     #40                 // class kotlin/Pair
      73: astore        8
      75: astore        10
      77: iconst_0
      78: istore        9
      80: aload         8
      82: aload_0
      83: invokestatic  #261                // Method plus:(Lkotlin/Pair;Lkotlin/Pair;)Lkotlin/Pair;
      86: aload         10
      88: swap
      89: invokeinterface #132,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
      94: pop
      95: goto          47
      98: aload         4
     100: checkcast     #51                 // class java/util/List
     103: nop
     104: areturn

  public static final java.util.List<java.lang.String> readInput(java.lang.String);
    Code:
       0: aload_0
       1: ldc_w         #267                // String name
       4: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: new           #269                // class java/io/File
      10: dup
      11: ldc_w         #271                // String src
      14: new           #273                // class java/lang/StringBuilder
      17: dup
      18: invokespecial #274                // Method java/lang/StringBuilder."<init>":()V
      21: aload_0
      22: invokevirtual #278                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      25: ldc_w         #280                // String .txt
      28: invokevirtual #278                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      31: invokevirtual #284                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      34: invokespecial #287                // Method java/io/File."<init>":(Ljava/lang/String;Ljava/lang/String;)V
      37: aconst_null
      38: iconst_1
      39: aconst_null
      40: invokestatic  #293                // Method kotlin/io/FilesKt.readLines$default:(Ljava/io/File;Ljava/nio/charset/Charset;ILjava/lang/Object;)Ljava/util/List;
      43: areturn

  public static final java.util.List<java.util.List<java.lang.String>> readBlocks(java.lang.String);
    Code:
       0: aload_0
       1: ldc_w         #267                // String name
       4: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: new           #269                // class java/io/File
      10: dup
      11: ldc_w         #271                // String src
      14: new           #273                // class java/lang/StringBuilder
      17: dup
      18: invokespecial #274                // Method java/lang/StringBuilder."<init>":()V
      21: aload_0
      22: invokevirtual #278                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      25: ldc_w         #280                // String .txt
      28: invokevirtual #278                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      31: invokevirtual #284                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      34: invokespecial #287                // Method java/io/File."<init>":(Ljava/lang/String;Ljava/lang/String;)V
      37: aconst_null
      38: iconst_1
      39: aconst_null
      40: invokestatic  #300                // Method kotlin/io/FilesKt.readText$default:(Ljava/io/File;Ljava/nio/charset/Charset;ILjava/lang/Object;)Ljava/lang/String;
      43: iconst_1
      44: newarray       char
      46: astore_1
      47: aload_1
      48: iconst_0
      49: bipush        10
      51: castore
      52: aload_1
      53: invokestatic  #306                // Method kotlin/text/StringsKt.trim:(Ljava/lang/String;[C)Ljava/lang/String;
      56: checkcast     #308                // class java/lang/CharSequence
      59: iconst_1
      60: anewarray     #310                // class java/lang/String
      63: astore_1
      64: aload_1
      65: iconst_0
      66: ldc_w         #312                // String \n\n
      69: aastore
      70: aload_1
      71: iconst_0
      72: iconst_0
      73: bipush        6
      75: aconst_null
      76: invokestatic  #316                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      79: checkcast     #84                 // class java/lang/Iterable
      82: astore_1
      83: nop
      84: iconst_0
      85: istore_2
      86: aload_1
      87: astore_3
      88: new           #86                 // class java/util/ArrayList
      91: dup
      92: aload_1
      93: bipush        10
      95: invokestatic  #113                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      98: invokespecial #116                // Method java/util/ArrayList."<init>":(I)V
     101: checkcast     #76                 // class java/util/Collection
     104: astore        4
     106: iconst_0
     107: istore        5
     109: aload_3
     110: invokeinterface #94,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     115: astore        6
     117: aload         6
     119: invokeinterface #100,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
     124: ifeq          188
     127: aload         6
     129: invokeinterface #139,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     134: astore        7
     136: aload         4
     138: aload         7
     140: checkcast     #310                // class java/lang/String
     143: astore        8
     145: astore        11
     147: iconst_0
     148: istore        9
     150: aload         8
     152: checkcast     #308                // class java/lang/CharSequence
     155: iconst_1
     156: newarray       char
     158: astore        10
     160: aload         10
     162: iconst_0
     163: bipush        10
     165: castore
     166: aload         10
     168: iconst_0
     169: iconst_0
     170: bipush        6
     172: aconst_null
     173: invokestatic  #319                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[CZIILjava/lang/Object;)Ljava/util/List;
     176: aload         11
     178: swap
     179: invokeinterface #132,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     184: pop
     185: goto          117
     188: aload         4
     190: checkcast     #51                 // class java/util/List
     193: nop
     194: areturn

  public static final java.util.List<java.lang.String> readRawBlocks(java.lang.String);
    Code:
       0: aload_0
       1: ldc_w         #267                // String name
       4: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: new           #269                // class java/io/File
      10: dup
      11: ldc_w         #271                // String src
      14: new           #273                // class java/lang/StringBuilder
      17: dup
      18: invokespecial #274                // Method java/lang/StringBuilder."<init>":()V
      21: aload_0
      22: invokevirtual #278                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      25: ldc_w         #280                // String .txt
      28: invokevirtual #278                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      31: invokevirtual #284                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      34: invokespecial #287                // Method java/io/File."<init>":(Ljava/lang/String;Ljava/lang/String;)V
      37: aconst_null
      38: iconst_1
      39: aconst_null
      40: invokestatic  #300                // Method kotlin/io/FilesKt.readText$default:(Ljava/io/File;Ljava/nio/charset/Charset;ILjava/lang/Object;)Ljava/lang/String;
      43: iconst_1
      44: newarray       char
      46: astore_1
      47: aload_1
      48: iconst_0
      49: bipush        10
      51: castore
      52: aload_1
      53: invokestatic  #306                // Method kotlin/text/StringsKt.trim:(Ljava/lang/String;[C)Ljava/lang/String;
      56: checkcast     #308                // class java/lang/CharSequence
      59: iconst_1
      60: anewarray     #310                // class java/lang/String
      63: astore_1
      64: aload_1
      65: iconst_0
      66: ldc_w         #312                // String \n\n
      69: aastore
      70: aload_1
      71: iconst_0
      72: iconst_0
      73: bipush        6
      75: aconst_null
      76: invokestatic  #316                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      79: areturn

  public static final java.lang.String md5(java.lang.String);
    Code:
       0: aload_0
       1: ldc           #13                 // String <this>
       3: invokestatic  #19                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #325                // class java/math/BigInteger
       9: dup
      10: iconst_1
      11: ldc_w         #327                // String MD5
      14: invokestatic  #333                // Method java/security/MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
      17: aload_0
      18: astore_1
      19: getstatic     #339                // Field kotlin/text/Charsets.UTF_8:Ljava/nio/charset/Charset;
      22: aload_1
      23: swap
      24: invokevirtual #343                // Method java/lang/String.getBytes:(Ljava/nio/charset/Charset;)[B
      27: dup
      28: ldc_w         #345                // String getBytes(...)
      31: invokestatic  #348                // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
      34: invokevirtual #352                // Method java/security/MessageDigest.digest:([B)[B
      37: invokespecial #355                // Method java/math/BigInteger."<init>":(I[B)V
      40: bipush        16
      42: invokevirtual #358                // Method java/math/BigInteger.toString:(I)Ljava/lang/String;
      45: dup
      46: ldc_w         #360                // String toString(...)
      49: invokestatic  #348                // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
      52: bipush        32
      54: bipush        48
      56: invokestatic  #364                // Method kotlin/text/StringsKt.padStart:(Ljava/lang/String;IC)Ljava/lang/String;
      59: areturn

  private static final boolean indexPairs$lambda$0(java.lang.Object);
    Code:
       0: iconst_1
       1: ireturn
}