import java.util.PriorityQueue

class FamilyTravel {
    data class Stop(@JvmField val dist: Int, @JvmField val prevDist: Int, @JvmField val src: Int) : Comparable<Stop> {
        override fun compareTo(other: Stop): Int = dist - other.dist
    }

    fun shortest(edges: Array<String>): Int {
        val m = edges.first().length
        val converted = Array(edges.size) { i ->
            val s = edges[i]
            IntArray(m) { j ->
                when (val c = s[j]) {
                    in 'a' .. 'z' -> c - 'a' + 1
                    in 'A' .. 'Z' -> c - 'A' + 27
                    else -> 53
                }
            }
        }

        val q = PriorityQueue<Stop>()
        q.add(Stop(0, 52, 0))

        val md = Array(m) {
            val re = IntArray(54)
            re.fill(Int.MAX_VALUE)
            re
        }
        md[0][53] = 0

        while (q.isNotEmpty()) {
            val (d, pd, src) = q.poll()
            if (src == 1)
                return d

            converted[src].forEachIndexed { index, i ->
                if (i <= pd) {
                    val nd = d + i
                    if (nd < md[index][i]) {
                        md[index][i] = nd
                        q.add(Stop(nd, i, index))
                    }
                }
            }
        }

        return -1
    }
}

Compiled from "FamilyTravel.kt"
public final class FamilyTravel {
  public FamilyTravel();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public final int shortest(java.lang.String[]);
    Code:
       0: aload_1
       1: ldc           #15                 // String edges
       3: invokestatic  #21                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: invokestatic  #27                 // Method kotlin/collections/ArraysKt.first:([Ljava/lang/Object;)Ljava/lang/Object;
      10: checkcast     #29                 // class java/lang/String
      13: invokevirtual #33                 // Method java/lang/String.length:()I
      16: istore_2
      17: iconst_0
      18: istore        4
      20: aload_1
      21: arraylength
      22: istore        5
      24: iload         5
      26: anewarray     #35                 // class "[I"
      29: astore        6
      31: iload         4
      33: iload         5
      35: if_icmpge     182
      38: iload         4
      40: istore        7
      42: aload         6
      44: iload         7
      46: aload_1
      47: iload         7
      49: aaload
      50: astore        8
      52: iconst_0
      53: istore        9
      55: iload_2
      56: newarray       int
      58: astore        10
      60: istore        21
      62: astore        20
      64: iload         9
      66: iload_2
      67: if_icmpge     169
      70: iload         9
      72: istore        11
      74: aload         10
      76: iload         11
      78: aload         8
      80: iload         11
      82: invokevirtual #39                 // Method java/lang/String.charAt:(I)C
      85: istore        12
      87: bipush        97
      89: iload         12
      91: if_icmpgt     109
      94: iload         12
      96: bipush        123
      98: if_icmpge     105
     101: iconst_1
     102: goto          110
     105: iconst_0
     106: goto          110
     109: iconst_0
     110: ifeq          123
     113: iload         12
     115: bipush        97
     117: isub
     118: iconst_1
     119: iadd
     120: goto          162
     123: bipush        65
     125: iload         12
     127: if_icmpgt     145
     130: iload         12
     132: bipush        91
     134: if_icmpge     141
     137: iconst_1
     138: goto          146
     141: iconst_0
     142: goto          146
     145: iconst_0
     146: ifeq          160
     149: iload         12
     151: bipush        65
     153: isub
     154: bipush        27
     156: iadd
     157: goto          162
     160: bipush        53
     162: iastore
     163: iinc          9, 1
     166: goto          64
     169: aload         20
     171: iload         21
     173: aload         10
     175: aastore
     176: iinc          4, 1
     179: goto          31
     182: aload         6
     184: astore_3
     185: new           #41                 // class java/util/PriorityQueue
     188: dup
     189: invokespecial #42                 // Method java/util/PriorityQueue."<init>":()V
     192: astore        4
     194: aload         4
     196: new           #44                 // class FamilyTravel$Stop
     199: dup
     200: iconst_0
     201: bipush        52
     203: iconst_0
     204: invokespecial #47                 // Method FamilyTravel$Stop."<init>":(III)V
     207: invokevirtual #51                 // Method java/util/PriorityQueue.add:(Ljava/lang/Object;)Z
     210: pop
     211: iconst_0
     212: istore        6
     214: iload_2
     215: anewarray     #35                 // class "[I"
     218: astore        7
     220: iload         6
     222: iload_2
     223: if_icmpge     261
     226: iload         6
     228: istore        8
     230: aload         7
     232: iload         8
     234: bipush        54
     236: newarray       int
     238: astore        9
     240: aload         9
     242: ldc           #52                 // int 2147483647
     244: iconst_0
     245: iconst_0
     246: bipush        6
     248: aconst_null
     249: invokestatic  #56                 // Method kotlin/collections/ArraysKt.fill$default:([IIIIILjava/lang/Object;)V
     252: aload         9
     254: aastore
     255: iinc          6, 1
     258: goto          220
     261: aload         7
     263: astore        5
     265: aload         5
     267: iconst_0
     268: aaload
     269: bipush        53
     271: iconst_0
     272: iastore
     273: aload         4
     275: checkcast     #58                 // class java/util/Collection
     278: invokeinterface #62,  1           // InterfaceMethod java/util/Collection.isEmpty:()Z
     283: ifne          290
     286: iconst_1
     287: goto          291
     290: iconst_0
     291: ifeq          450
     294: aload         4
     296: invokevirtual #66                 // Method java/util/PriorityQueue.poll:()Ljava/lang/Object;
     299: checkcast     #44                 // class FamilyTravel$Stop
     302: astore        6
     304: aload         6
     306: invokevirtual #69                 // Method FamilyTravel$Stop.component1:()I
     309: istore        7
     311: aload         6
     313: invokevirtual #72                 // Method FamilyTravel$Stop.component2:()I
     316: istore        8
     318: aload         6
     320: invokevirtual #75                 // Method FamilyTravel$Stop.component3:()I
     323: istore        9
     325: iload         9
     327: iconst_1
     328: if_icmpne     334
     331: iload         7
     333: ireturn
     334: aload_3
     335: iload         9
     337: aaload
     338: astore        10
     340: iconst_0
     341: istore        11
     343: iconst_0
     344: istore        12
     346: iconst_0
     347: istore        13
     349: aload         10
     351: arraylength
     352: istore        14
     354: iload         13
     356: iload         14
     358: if_icmpge     446
     361: aload         10
     363: iload         13
     365: iaload
     366: istore        15
     368: iload         12
     370: iinc          12, 1
     373: iload         15
     375: istore        16
     377: istore        17
     379: iconst_0
     380: istore        18
     382: iload         16
     384: iload         8
     386: if_icmpgt     438
     389: iload         7
     391: iload         16
     393: iadd
     394: istore        19
     396: iload         19
     398: aload         5
     400: iload         17
     402: aaload
     403: iload         16
     405: iaload
     406: if_icmpge     438
     409: aload         5
     411: iload         17
     413: aaload
     414: iload         16
     416: iload         19
     418: iastore
     419: aload         4
     421: new           #44                 // class FamilyTravel$Stop
     424: dup
     425: iload         19
     427: iload         16
     429: iload         17
     431: invokespecial #47                 // Method FamilyTravel$Stop."<init>":(III)V
     434: invokevirtual #51                 // Method java/util/PriorityQueue.add:(Ljava/lang/Object;)Z
     437: pop
     438: nop
     439: nop
     440: iinc          13, 1
     443: goto          354
     446: nop
     447: goto          273
     450: iconst_m1
     451: ireturn
}

Compiled from "FamilyTravel.kt"
public final class FamilyTravel$Stop implements java.lang.Comparable<FamilyTravel$Stop> {
  public final int dist;

  public final int prevDist;

  public final int src;

  public FamilyTravel$Stop(int, int, int);
    Code:
       0: aload_0
       1: invokespecial #12                 // Method java/lang/Object."<init>":()V
       4: aload_0
       5: iload_1
       6: putfield      #16                 // Field dist:I
       9: aload_0
      10: iload_2
      11: putfield      #19                 // Field prevDist:I
      14: aload_0
      15: iload_3
      16: putfield      #22                 // Field src:I
      19: return

  public int compareTo(FamilyTravel$Stop);
    Code:
       0: aload_1
       1: ldc           #29                 // String other
       3: invokestatic  #35                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: getfield      #16                 // Field dist:I
      10: aload_1
      11: getfield      #16                 // Field dist:I
      14: isub
      15: ireturn

  public final int component1();
    Code:
       0: aload_0
       1: getfield      #16                 // Field dist:I
       4: ireturn

  public final int component2();
    Code:
       0: aload_0
       1: getfield      #19                 // Field prevDist:I
       4: ireturn

  public final int component3();
    Code:
       0: aload_0
       1: getfield      #22                 // Field src:I
       4: ireturn

  public final FamilyTravel$Stop copy(int, int, int);
    Code:
       0: new           #2                  // class FamilyTravel$Stop
       3: dup
       4: iload_1
       5: iload_2
       6: iload_3
       7: invokespecial #43                 // Method "<init>":(III)V
      10: areturn

  public static FamilyTravel$Stop copy$default(FamilyTravel$Stop, int, int, int, int, java.lang.Object);
    Code:
       0: iload         4
       2: iconst_1
       3: iand
       4: ifeq          12
       7: aload_0
       8: getfield      #16                 // Field dist:I
      11: istore_1
      12: iload         4
      14: iconst_2
      15: iand
      16: ifeq          24
      19: aload_0
      20: getfield      #19                 // Field prevDist:I
      23: istore_2
      24: iload         4
      26: iconst_4
      27: iand
      28: ifeq          36
      31: aload_0
      32: getfield      #22                 // Field src:I
      35: istore_3
      36: aload_0
      37: iload_1
      38: iload_2
      39: iload_3
      40: invokevirtual #47                 // Method copy:(III)LFamilyTravel$Stop;
      43: areturn

  public java.lang.String toString();
    Code:
       0: new           #51                 // class java/lang/StringBuilder
       3: dup
       4: invokespecial #52                 // Method java/lang/StringBuilder."<init>":()V
       7: ldc           #54                 // String Stop(dist=
       9: invokevirtual #58                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      12: aload_0
      13: getfield      #16                 // Field dist:I
      16: invokevirtual #61                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      19: ldc           #63                 // String , prevDist=
      21: invokevirtual #58                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      24: aload_0
      25: getfield      #19                 // Field prevDist:I
      28: invokevirtual #61                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      31: ldc           #65                 // String , src=
      33: invokevirtual #58                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      36: aload_0
      37: getfield      #22                 // Field src:I
      40: invokevirtual #61                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      43: bipush        41
      45: invokevirtual #68                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      48: invokevirtual #70                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      51: areturn

  public int hashCode();
    Code:
       0: aload_0
       1: getfield      #16                 // Field dist:I
       4: invokestatic  #76                 // Method java/lang/Integer.hashCode:(I)I
       7: istore_1
       8: iload_1
       9: bipush        31
      11: imul
      12: aload_0
      13: getfield      #19                 // Field prevDist:I
      16: invokestatic  #76                 // Method java/lang/Integer.hashCode:(I)I
      19: iadd
      20: istore_1
      21: iload_1
      22: bipush        31
      24: imul
      25: aload_0
      26: getfield      #22                 // Field src:I
      29: invokestatic  #76                 // Method java/lang/Integer.hashCode:(I)I
      32: iadd
      33: istore_1
      34: iload_1
      35: ireturn

  public boolean equals(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: if_acmpne     7
       5: iconst_1
       6: ireturn
       7: aload_1
       8: instanceof    #2                  // class FamilyTravel$Stop
      11: ifne          16
      14: iconst_0
      15: ireturn
      16: aload_1
      17: checkcast     #2                  // class FamilyTravel$Stop
      20: astore_2
      21: aload_0
      22: getfield      #16                 // Field dist:I
      25: aload_2
      26: getfield      #16                 // Field dist:I
      29: if_icmpeq     34
      32: iconst_0
      33: ireturn
      34: aload_0
      35: getfield      #19                 // Field prevDist:I
      38: aload_2
      39: getfield      #19                 // Field prevDist:I
      42: if_icmpeq     47
      45: iconst_0
      46: ireturn
      47: aload_0
      48: getfield      #22                 // Field src:I
      51: aload_2
      52: getfield      #22                 // Field src:I
      55: if_icmpeq     60
      58: iconst_0
      59: ireturn
      60: iconst_1
      61: ireturn

  public int compareTo(java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #2                  // class FamilyTravel$Stop
       5: invokevirtual #84                 // Method compareTo:(LFamilyTravel$Stop;)I
       8: ireturn
}


class FewestFactors {
    private fun IntArray.swap(l: Int, r: Int) {
        val tmp = this[l]
        this[l] = this[r]
        this[r] = tmp
    }

    private val IntArray.number: Int
        get() = fold(0) { acc, it -> 10 * acc + it }

    private val Int.factors: Int
        get() {
            var nf = 0
            var f = 1
            while (f * f < this) {
                if (this % f == 0)
                    nf += 2
                ++f
            }
            if (f * f == this)
                ++nf
            return nf
        }

    fun number(digits: IntArray): Int {
        var mn = digits.number
        var mnf = mn.factors
        val s = digits.size
        val weights = IntArray(s)
        var i = 1
        while (i < s) {
            if (weights[i] < i) {
                digits.swap(i, if (i % 2 == 0) 0 else weights[i])

                val n = digits.number
                val nf = n.factors
                if (nf < mnf) {
                    mnf = nf
                    mn = n
                } else if (nf == mnf && n < mn)
                    mn = n

                ++weights[i]
                i = 1
            } else {
                weights[i] = 0
                ++i
            }
        }
        return mn
    }
}

Compiled from "FewestFactors.kt"
public final class FewestFactors {
  public FewestFactors();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  private final void swap(int[], int, int);
    Code:
       0: aload_1
       1: iload_2
       2: iaload
       3: istore        4
       5: aload_1
       6: iload_2
       7: aload_1
       8: iload_3
       9: iaload
      10: iastore
      11: aload_1
      12: iload_3
      13: iload         4
      15: iastore
      16: return

  private final int getNumber(int[]);
    Code:
       0: aload_1
       1: astore_2
       2: iconst_0
       3: istore_3
       4: iconst_0
       5: istore        4
       7: iload_3
       8: istore        5
      10: iconst_0
      11: istore        6
      13: aload_2
      14: arraylength
      15: istore        7
      17: iload         6
      19: iload         7
      21: if_icmpge     57
      24: aload_2
      25: iload         6
      27: iaload
      28: istore        8
      30: iload         5
      32: iload         8
      34: istore        9
      36: istore        10
      38: iconst_0
      39: istore        11
      41: bipush        10
      43: iload         10
      45: imul
      46: iload         9
      48: iadd
      49: istore        5
      51: iinc          6, 1
      54: goto          17
      57: iload         5
      59: ireturn

  private final int getFactors(int);
    Code:
       0: iconst_0
       1: istore_2
       2: iconst_1
       3: istore_3
       4: iload_3
       5: iload_3
       6: imul
       7: iload_1
       8: if_icmpge     26
      11: iload_1
      12: iload_3
      13: irem
      14: ifne          20
      17: iinc          2, 2
      20: iinc          3, 1
      23: goto          4
      26: iload_3
      27: iload_3
      28: imul
      29: iload_1
      30: if_icmpne     36
      33: iinc          2, 1
      36: iload_2
      37: ireturn

  public final int number(int[]);
    Code:
       0: aload_1
       1: ldc           #39                 // String digits
       3: invokestatic  #45                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: aload_1
       8: invokespecial #47                 // Method getNumber:([I)I
      11: istore_2
      12: aload_0
      13: iload_2
      14: invokespecial #49                 // Method getFactors:(I)I
      17: istore_3
      18: aload_1
      19: arraylength
      20: istore        4
      22: iload         4
      24: newarray       int
      26: astore        5
      28: iconst_1
      29: istore        6
      31: iload         6
      33: iload         4
      35: if_icmpge     159
      38: aload         5
      40: iload         6
      42: iaload
      43: iload         6
      45: if_icmpge     144
      48: aload_0
      49: aload_1
      50: iload         6
      52: iload         6
      54: iconst_2
      55: irem
      56: ifne          63
      59: iconst_0
      60: goto          68
      63: aload         5
      65: iload         6
      67: iaload
      68: invokespecial #51                 // Method swap:([III)V
      71: aload_0
      72: aload_1
      73: invokespecial #47                 // Method getNumber:([I)I
      76: istore        7
      78: aload_0
      79: iload         7
      81: invokespecial #49                 // Method getFactors:(I)I
      84: istore        8
      86: iload         8
      88: iload_3
      89: if_icmpge     101
      92: iload         8
      94: istore_3
      95: iload         7
      97: istore_2
      98: goto          116
     101: iload         8
     103: iload_3
     104: if_icmpne     116
     107: iload         7
     109: iload_2
     110: if_icmpge     116
     113: iload         7
     115: istore_2
     116: iload         6
     118: istore        9
     120: aload         5
     122: iload         9
     124: aload         5
     126: iload         9
     128: iaload
     129: iconst_1
     130: iadd
     131: iastore
     132: aload         5
     134: iload         9
     136: iaload
     137: pop
     138: iconst_1
     139: istore        6
     141: goto          31
     144: aload         5
     146: iload         6
     148: iconst_0
     149: iastore
     150: iinc          6, 1
     153: iload         6
     155: pop
     156: goto          31
     159: iload_2
     160: ireturn
}


class MatchNumbersEasy {
    private fun compare(sb1: StringBuilder, sb2: StringBuilder): Int {
        if (sb1.isEmpty() || sb2.isEmpty())
            return sb1.length - sb2.length

        var nz1 = sb1.indexOfFirst { c -> c != '0' }
        if (nz1 == -1)
            nz1 = sb1.length - 1
        var nz2 = sb2.indexOfFirst { c -> c != '0' }
        if (nz2 == -1)
            nz2 = sb2.length - 1

        val l1 = sb1.length - nz1
        val l2 = sb2.length - nz2
        var cr = l1 - l2
        if (cr != 0)
            return cr
        for (i in 0 until Math.min(l1, l2)) {
            cr = sb1[nz1 + i] - sb2[nz2 + i]
            if (cr != 0)
                return cr
        }
        return 0
    }

    fun maxNumber(matches: IntArray, n: Int): String {
        val record = Array(n + 1) { StringBuilder(n) }
        var sb = StringBuilder(n)
        for (m in 1 .. n) {
            matches.forEachIndexed { i, match ->
                for (j in match .. m) {
                    val prev = record[j - match]
                    if (prev.isEmpty() || prev.first() <= '0' + i) {
                        sb.append(i)
                        sb.append(prev)
                    } else {
                        sb.append(prev)
                        sb.append(i)
                    }

                    val curr = record[m]
                    if (compare(sb, curr) > 0) {
                        record[m] = sb
                        sb = curr
                    }
                    sb.setLength(0)
                }
            }
        }

        sb.setLength(0)
        return record.foldRight(sb) { acc, isb -> if (compare(isb, acc) > 0) isb else acc }.toString()
    }
}

Compiled from "MatchNumbersEasy.kt"
public final class MatchNumbersEasy {
  public MatchNumbersEasy();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  private final int compare(java.lang.StringBuilder, java.lang.StringBuilder);
    Code:
       0: aload_1
       1: checkcast     #14                 // class java/lang/CharSequence
       4: invokeinterface #18,  1           // InterfaceMethod java/lang/CharSequence.length:()I
       9: ifne          16
      12: iconst_1
      13: goto          17
      16: iconst_0
      17: ifne          40
      20: aload_2
      21: checkcast     #14                 // class java/lang/CharSequence
      24: invokeinterface #18,  1           // InterfaceMethod java/lang/CharSequence.length:()I
      29: ifne          36
      32: iconst_1
      33: goto          37
      36: iconst_0
      37: ifeq          50
      40: aload_1
      41: invokevirtual #21                 // Method java/lang/StringBuilder.length:()I
      44: aload_2
      45: invokevirtual #21                 // Method java/lang/StringBuilder.length:()I
      48: isub
      49: ireturn
      50: aload_1
      51: checkcast     #14                 // class java/lang/CharSequence
      54: astore        4
      56: iconst_0
      57: istore        5
      59: iconst_0
      60: istore        6
      62: aload         4
      64: invokeinterface #18,  1           // InterfaceMethod java/lang/CharSequence.length:()I
      69: istore        7
      71: iload         6
      73: iload         7
      75: if_icmpge     118
      78: aload         4
      80: iload         6
      82: invokeinterface #25,  2           // InterfaceMethod java/lang/CharSequence.charAt:(I)C
      87: istore        8
      89: iconst_0
      90: istore        9
      92: iload         8
      94: bipush        48
      96: if_icmpeq     103
      99: iconst_1
     100: goto          104
     103: iconst_0
     104: ifeq          112
     107: iload         6
     109: goto          119
     112: iinc          6, 1
     115: goto          71
     118: iconst_m1
     119: istore_3
     120: iload_3
     121: iconst_m1
     122: if_icmpne     132
     125: aload_1
     126: invokevirtual #21                 // Method java/lang/StringBuilder.length:()I
     129: iconst_1
     130: isub
     131: istore_3
     132: aload_2
     133: checkcast     #14                 // class java/lang/CharSequence
     136: astore        5
     138: iconst_0
     139: istore        6
     141: iconst_0
     142: istore        7
     144: aload         5
     146: invokeinterface #18,  1           // InterfaceMethod java/lang/CharSequence.length:()I
     151: istore        8
     153: iload         7
     155: iload         8
     157: if_icmpge     200
     160: aload         5
     162: iload         7
     164: invokeinterface #25,  2           // InterfaceMethod java/lang/CharSequence.charAt:(I)C
     169: istore        9
     171: iconst_0
     172: istore        10
     174: iload         9
     176: bipush        48
     178: if_icmpeq     185
     181: iconst_1
     182: goto          186
     185: iconst_0
     186: ifeq          194
     189: iload         7
     191: goto          201
     194: iinc          7, 1
     197: goto          153
     200: iconst_m1
     201: istore        4
     203: iload         4
     205: iconst_m1
     206: if_icmpne     217
     209: aload_2
     210: invokevirtual #21                 // Method java/lang/StringBuilder.length:()I
     213: iconst_1
     214: isub
     215: istore        4
     217: aload_1
     218: invokevirtual #21                 // Method java/lang/StringBuilder.length:()I
     221: iload_3
     222: isub
     223: istore        5
     225: aload_2
     226: invokevirtual #21                 // Method java/lang/StringBuilder.length:()I
     229: iload         4
     231: isub
     232: istore        6
     234: iload         5
     236: iload         6
     238: isub
     239: istore        7
     241: iload         7
     243: ifeq          249
     246: iload         7
     248: ireturn
     249: iconst_0
     250: istore        8
     252: iload         5
     254: iload         6
     256: invokestatic  #31                 // Method java/lang/Math.min:(II)I
     259: istore        9
     261: iload         8
     263: iload         9
     265: if_icmpge     302
     268: aload_1
     269: iload_3
     270: iload         8
     272: iadd
     273: invokevirtual #32                 // Method java/lang/StringBuilder.charAt:(I)C
     276: aload_2
     277: iload         4
     279: iload         8
     281: iadd
     282: invokevirtual #32                 // Method java/lang/StringBuilder.charAt:(I)C
     285: isub
     286: istore        7
     288: iload         7
     290: ifeq          296
     293: iload         7
     295: ireturn
     296: iinc          8, 1
     299: goto          261
     302: iconst_0
     303: ireturn

  public final java.lang.String maxNumber(int[], int);
    Code:
       0: aload_1
       1: ldc           #55                 // String matches
       3: invokestatic  #61                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: iconst_0
       7: istore        4
       9: iload_2
      10: iconst_1
      11: iadd
      12: istore        5
      14: iload         5
      16: anewarray     #20                 // class java/lang/StringBuilder
      19: astore        6
      21: iload         4
      23: iload         5
      25: if_icmpge     51
      28: iload         4
      30: istore        7
      32: aload         6
      34: iload         7
      36: new           #20                 // class java/lang/StringBuilder
      39: dup
      40: iload_2
      41: invokespecial #64                 // Method java/lang/StringBuilder."<init>":(I)V
      44: aastore
      45: iinc          4, 1
      48: goto          21
      51: aload         6
      53: astore_3
      54: aconst_null
      55: astore        4
      57: new           #20                 // class java/lang/StringBuilder
      60: dup
      61: iload_2
      62: invokespecial #64                 // Method java/lang/StringBuilder."<init>":(I)V
      65: astore        4
      67: iconst_1
      68: istore        5
      70: iload         5
      72: iload_2
      73: if_icmpgt     289
      76: aload_1
      77: astore        6
      79: iconst_0
      80: istore        7
      82: iconst_0
      83: istore        8
      85: iconst_0
      86: istore        9
      88: aload         6
      90: arraylength
      91: istore        10
      93: iload         9
      95: iload         10
      97: if_icmpge     276
     100: aload         6
     102: iload         9
     104: iaload
     105: istore        11
     107: iload         8
     109: iinc          8, 1
     112: iload         11
     114: istore        12
     116: istore        13
     118: iconst_0
     119: istore        14
     121: iload         12
     123: istore        15
     125: iload         15
     127: iload         5
     129: if_icmpgt     268
     132: aload_3
     133: iload         15
     135: iload         12
     137: isub
     138: aaload
     139: astore        16
     141: aload         16
     143: checkcast     #14                 // class java/lang/CharSequence
     146: invokeinterface #18,  1           // InterfaceMethod java/lang/CharSequence.length:()I
     151: ifne          158
     154: iconst_1
     155: goto          159
     158: iconst_0
     159: ifne          182
     162: aload         16
     164: checkcast     #14                 // class java/lang/CharSequence
     167: invokestatic  #70                 // Method kotlin/text/StringsKt.first:(Ljava/lang/CharSequence;)C
     170: bipush        48
     172: iload         13
     174: iadd
     175: i2c
     176: invokestatic  #72                 // Method kotlin/jvm/internal/Intrinsics.compare:(II)I
     179: ifgt          203
     182: aload         4
     184: iload         13
     186: invokevirtual #76                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
     189: pop
     190: aload         4
     192: aload         16
     194: checkcast     #14                 // class java/lang/CharSequence
     197: invokevirtual #79                 // Method java/lang/StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
     200: goto          221
     203: aload         4
     205: aload         16
     207: checkcast     #14                 // class java/lang/CharSequence
     210: invokevirtual #79                 // Method java/lang/StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
     213: pop
     214: aload         4
     216: iload         13
     218: invokevirtual #76                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
     221: pop
     222: aload_3
     223: iload         5
     225: aaload
     226: astore        17
     228: aload_0
     229: aload         4
     231: aload         17
     233: invokespecial #81                 // Method compare:(Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)I
     236: ifle          249
     239: aload_3
     240: iload         5
     242: aload         4
     244: aastore
     245: aload         17
     247: astore        4
     249: aload         4
     251: iconst_0
     252: invokevirtual #84                 // Method java/lang/StringBuilder.setLength:(I)V
     255: iload         15
     257: iload         5
     259: if_icmpeq     268
     262: iinc          15, 1
     265: goto          132
     268: nop
     269: nop
     270: iinc          9, 1
     273: goto          93
     276: nop
     277: iload         5
     279: iload_2
     280: if_icmpeq     289
     283: iinc          5, 1
     286: goto          76
     289: aload         4
     291: iconst_0
     292: invokevirtual #84                 // Method java/lang/StringBuilder.setLength:(I)V
     295: aload_3
     296: astore        6
     298: aload         4
     300: astore        7
     302: iconst_0
     303: istore        8
     305: aload         6
     307: invokestatic  #90                 // Method kotlin/collections/ArraysKt.getLastIndex:([Ljava/lang/Object;)I
     310: istore        9
     312: aload         7
     314: astore        10
     316: iload         9
     318: iflt          361
     321: aload         6
     323: iload         9
     325: iinc          9, -1
     328: aaload
     329: aload         10
     331: astore        11
     333: astore        12
     335: iconst_0
     336: istore        13
     338: aload_0
     339: aload         11
     341: aload         12
     343: invokespecial #81                 // Method compare:(Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;)I
     346: ifle          354
     349: aload         11
     351: goto          356
     354: aload         12
     356: astore        10
     358: goto          316
     361: aload         10
     363: invokevirtual #94                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
     366: dup
     367: ldc           #96                 // String toString(...)
     369: invokestatic  #99                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
     372: areturn
}


import java.util.*

val resultList = mutableListOf<String>()
var done = false

// Solution for https://open.kattis.com/problems/mapcolouring
// With help from https://github.com/amartop

fun main(args: Array<String>){
    val input = Scanner(System.`in`)
    val numberOfTestCases = input.nextInt()

    for(testCase in 1..numberOfTestCases){
        val countries = input.nextInt()
        val borders = input.nextInt()
        val adjMatrix = Array(countries+1,{IntArray(countries+1)})
        var coloredArr = IntArray(countries+1, { _ -> 1})

        for(border in 0 until borders){
            val c1 = input.nextInt()
            val c2 = input.nextInt()
            adjMatrix[c1][c2] = 1
            adjMatrix[c2][c1] = 1
        }

        if(borders == 0){
            resultList.add("1")
            continue
        }
        done = false
        for(i in 1..countries+1){
            solve(i,adjMatrix,0,coloredArr)
        }

    }

    resultList.forEach {println(it)}
}

fun solve(numberOfColors: Int, adjMatrix: Array<IntArray>, currentVertex: Int, vertColored: IntArray){

    if(done){
        return
    }

    val colorOk = checkColor(adjMatrix,currentVertex,vertColored)

    if(!colorOk){
        return
    }

    if(numberOfColors+1 > 4){
        resultList.add("many")
        done = true
        return
    }

    if(currentVertex == adjMatrix.size-1){
        resultList.add((numberOfColors+1).toString())
        done = true
        return
    }

    for(i in 1..numberOfColors+1) {
        vertColored[currentVertex+1] = i
        solve(numberOfColors,adjMatrix,currentVertex+1,vertColored)
    }
    return
}

fun checkColor(adjMatrix: Array<IntArray>, currentVertex: Int, vertColored: IntArray): Boolean {

    for(i in 0 until currentVertex){
        if(adjMatrix[i][currentVertex] != 0 && vertColored[i] == vertColored[currentVertex]){
            return false;
        }
    }
    return true
}

Compiled from "MapColouring.kt"
public final class MapColouringKt {
  private static final java.util.List<java.lang.String> resultList;

  private static boolean done;

  public static final java.util.List<java.lang.String> getResultList();
    Code:
       0: getstatic     #12                 // Field resultList:Ljava/util/List;
       3: areturn

  public static final boolean getDone();
    Code:
       0: getstatic     #18                 // Field done:Z
       3: ireturn

  public static final void setDone(boolean);
    Code:
       0: iload_0
       1: putstatic     #18                 // Field done:Z
       4: return

  public static final void main(java.lang.String[]);
    Code:
       0: aload_0
       1: ldc           #25                 // String args
       3: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #33                 // class java/util/Scanner
       9: dup
      10: getstatic     #39                 // Field java/lang/System.in:Ljava/io/InputStream;
      13: invokespecial #43                 // Method java/util/Scanner."<init>":(Ljava/io/InputStream;)V
      16: astore_1
      17: aload_1
      18: invokevirtual #47                 // Method java/util/Scanner.nextInt:()I
      21: istore_2
      22: iconst_1
      23: istore_3
      24: iload_3
      25: iload_2
      26: if_icmpgt     250
      29: aload_1
      30: invokevirtual #47                 // Method java/util/Scanner.nextInt:()I
      33: istore        4
      35: aload_1
      36: invokevirtual #47                 // Method java/util/Scanner.nextInt:()I
      39: istore        5
      41: iconst_0
      42: istore        7
      44: iload         4
      46: iconst_1
      47: iadd
      48: istore        8
      50: iload         8
      52: anewarray     #49                 // class "[I"
      55: astore        9
      57: iload         7
      59: iload         8
      61: if_icmpge     85
      64: iload         7
      66: istore        10
      68: aload         9
      70: iload         10
      72: iload         4
      74: iconst_1
      75: iadd
      76: newarray       int
      78: aastore
      79: iinc          7, 1
      82: goto          57
      85: aload         9
      87: astore        6
      89: iconst_0
      90: istore        8
      92: iload         4
      94: iconst_1
      95: iadd
      96: istore        9
      98: iload         9
     100: newarray       int
     102: astore        10
     104: iload         8
     106: iload         9
     108: if_icmpge     127
     111: iload         8
     113: istore        11
     115: aload         10
     117: iload         11
     119: iconst_1
     120: iastore
     121: iinc          8, 1
     124: goto          104
     127: aload         10
     129: astore        7
     131: iconst_0
     132: istore        8
     134: iload         8
     136: iload         5
     138: if_icmpge     177
     141: aload_1
     142: invokevirtual #47                 // Method java/util/Scanner.nextInt:()I
     145: istore        9
     147: aload_1
     148: invokevirtual #47                 // Method java/util/Scanner.nextInt:()I
     151: istore        10
     153: aload         6
     155: iload         9
     157: aaload
     158: iload         10
     160: iconst_1
     161: iastore
     162: aload         6
     164: iload         10
     166: aaload
     167: iload         9
     169: iconst_1
     170: iastore
     171: iinc          8, 1
     174: goto          134
     177: iload         5
     179: ifne          196
     182: getstatic     #12                 // Field resultList:Ljava/util/List;
     185: ldc           #51                 // String 1
     187: invokeinterface #57,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     192: pop
     193: goto          239
     196: iconst_0
     197: putstatic     #18                 // Field done:Z
     200: iconst_1
     201: istore        8
     203: iload         4
     205: iconst_1
     206: iadd
     207: istore        9
     209: iload         8
     211: iload         9
     213: if_icmpgt     239
     216: iload         8
     218: aload         6
     220: iconst_0
     221: aload         7
     223: invokestatic  #61                 // Method solve:(I[[II[I)V
     226: iload         8
     228: iload         9
     230: if_icmpeq     239
     233: iinc          8, 1
     236: goto          216
     239: iload_3
     240: iload_2
     241: if_icmpeq     250
     244: iinc          3, 1
     247: goto          29
     250: getstatic     #12                 // Field resultList:Ljava/util/List;
     253: checkcast     #63                 // class java/lang/Iterable
     256: astore_3
     257: iconst_0
     258: istore        4
     260: aload_3
     261: invokeinterface #67,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     266: astore        5
     268: aload         5
     270: invokeinterface #72,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     275: ifeq          310
     278: aload         5
     280: invokeinterface #76,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     285: astore        6
     287: aload         6
     289: checkcast     #78                 // class java/lang/String
     292: astore        7
     294: iconst_0
     295: istore        8
     297: getstatic     #82                 // Field java/lang/System.out:Ljava/io/PrintStream;
     300: aload         7
     302: invokevirtual #88                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     305: nop
     306: nop
     307: goto          268
     310: nop
     311: return

  public static final void solve(int, int[][], int, int[]);
    Code:
       0: aload_1
       1: ldc           #114                // String adjMatrix
       3: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_3
       7: ldc           #116                // String vertColored
       9: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: getstatic     #18                 // Field done:Z
      15: ifeq          19
      18: return
      19: aload_1
      20: iload_2
      21: aload_3
      22: invokestatic  #120                // Method checkColor:([[II[I)Z
      25: istore        4
      27: iload         4
      29: ifne          33
      32: return
      33: iload_0
      34: iconst_1
      35: iadd
      36: iconst_4
      37: if_icmple     56
      40: getstatic     #12                 // Field resultList:Ljava/util/List;
      43: ldc           #122                // String many
      45: invokeinterface #57,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
      50: pop
      51: iconst_1
      52: putstatic     #18                 // Field done:Z
      55: return
      56: iload_2
      57: aload_1
      58: checkcast     #124                // class "[Ljava/lang/Object;"
      61: arraylength
      62: iconst_1
      63: isub
      64: if_icmpne     87
      67: getstatic     #12                 // Field resultList:Ljava/util/List;
      70: iload_0
      71: iconst_1
      72: iadd
      73: invokestatic  #128                // Method java/lang/String.valueOf:(I)Ljava/lang/String;
      76: invokeinterface #57,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
      81: pop
      82: iconst_1
      83: putstatic     #18                 // Field done:Z
      86: return
      87: iconst_1
      88: istore        5
      90: iload_0
      91: iconst_1
      92: iadd
      93: istore        6
      95: iload         5
      97: iload         6
      99: if_icmpgt     131
     102: aload_3
     103: iload_2
     104: iconst_1
     105: iadd
     106: iload         5
     108: iastore
     109: iload_0
     110: aload_1
     111: iload_2
     112: iconst_1
     113: iadd
     114: aload_3
     115: invokestatic  #61                 // Method solve:(I[[II[I)V
     118: iload         5
     120: iload         6
     122: if_icmpeq     131
     125: iinc          5, 1
     128: goto          102
     131: return

  public static final boolean checkColor(int[][], int, int[]);
    Code:
       0: aload_0
       1: ldc           #114                // String adjMatrix
       3: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #116                // String vertColored
       9: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: iconst_0
      13: istore_3
      14: iload_3
      15: iload_1
      16: if_icmpge     44
      19: aload_0
      20: iload_3
      21: aaload
      22: iload_1
      23: iaload
      24: ifeq          38
      27: aload_2
      28: iload_3
      29: iaload
      30: aload_2
      31: iload_1
      32: iaload
      33: if_icmpne     38
      36: iconst_0
      37: ireturn
      38: iinc          3, 1
      41: goto          14
      44: iconst_1
      45: ireturn

  static {};
    Code:
       0: new           #135                // class java/util/ArrayList
       3: dup
       4: invokespecial #137                // Method java/util/ArrayList."<init>":()V
       7: checkcast     #53                 // class java/util/List
      10: putstatic     #12                 // Field resultList:Ljava/util/List;
      13: return
}


import java.util.*

// Solution for https://open.kattis.com/problems/citrusintern
// With help from https://github.com/amartop

var numberOfEmployees = 0
var input = Scanner(System.`in`)
var costs = mutableListOf<Int>()
var inL = arrayOf<Long>()
var outUpL = arrayOf<Long>()
var outDownL = arrayOf<Long>()
var root = -1

fun init() : Array<MutableList<Int>>{
    numberOfEmployees = input.nextInt()
    val adjList = Array(numberOfEmployees,{ _ -> mutableListOf<Int>()})
    val rootList = BooleanArray(numberOfEmployees,{_ -> true})
    for(i in 0 until numberOfEmployees){
        costs.add(input.nextInt())
        val childs = input.nextInt()
        for(x in 0 until childs){
            val currentChild = input.nextInt()
            adjList[i].add(currentChild)
            rootList[currentChild] = false
        }
    }

    for(i in 0 until numberOfEmployees){
        if(rootList[i]){
            root = i
            break
        }
    }

    return adjList
}

fun solve(adjList: Array<MutableList<Int>>){
    inL = Array<Long>(numberOfEmployees,{ _ -> 0}) // Init to weight
    for(i in 0  until costs.size){
        inL[i] = costs[i].toLong()
    }
    outDownL = Array<Long>(numberOfEmployees,{ _ -> 0})
    outUpL = Array<Long>(numberOfEmployees,{ _ -> 0})
    fillTable2(root,adjList)
    println(Math.min(outDownL[root],inL[root]))

}

fun fillTable2(currentVertex: Int, adjList: Array<MutableList<Int>>){

    if(adjList[currentVertex].isEmpty()){
        outDownL[currentVertex] = Long.MAX_VALUE
        return
    }

    var delta: Long = Long.MAX_VALUE

    for(neighbour in adjList[currentVertex]){
        fillTable2(neighbour,adjList)
        inL[currentVertex] += outUpL[neighbour]
        outUpL[currentVertex] += Math.min(inL[neighbour], outDownL[neighbour])
        outDownL[currentVertex] += Math.min(inL[neighbour], outDownL[neighbour])

        delta = Math.min(Math.max(inL[neighbour]- outDownL[neighbour],0),delta)
    }
    outDownL[currentVertex] += delta
}
fun main(args: Array<String>){
    val adjList = init()
    solve(adjList)
}

Compiled from "TheCitrusIntern.kt"
public final class TheCitrusInternKt {
  private static int numberOfEmployees;

  private static java.util.Scanner input;

  private static java.util.List<java.lang.Integer> costs;

  private static java.lang.Long[] inL;

  private static java.lang.Long[] outUpL;

  private static java.lang.Long[] outDownL;

  private static int root;

  public static final int getNumberOfEmployees();
    Code:
       0: getstatic     #10                 // Field numberOfEmployees:I
       3: ireturn

  public static final void setNumberOfEmployees(int);
    Code:
       0: iload_0
       1: putstatic     #10                 // Field numberOfEmployees:I
       4: return

  public static final java.util.Scanner getInput();
    Code:
       0: getstatic     #20                 // Field input:Ljava/util/Scanner;
       3: areturn

  public static final void setInput(java.util.Scanner);
    Code:
       0: aload_0
       1: ldc           #23                 // String <set-?>
       3: invokestatic  #29                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: putstatic     #20                 // Field input:Ljava/util/Scanner;
      10: return

  public static final java.util.List<java.lang.Integer> getCosts();
    Code:
       0: getstatic     #36                 // Field costs:Ljava/util/List;
       3: areturn

  public static final void setCosts(java.util.List<java.lang.Integer>);
    Code:
       0: aload_0
       1: ldc           #23                 // String <set-?>
       3: invokestatic  #29                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: putstatic     #36                 // Field costs:Ljava/util/List;
      10: return

  public static final java.lang.Long[] getInL();
    Code:
       0: getstatic     #45                 // Field inL:[Ljava/lang/Long;
       3: areturn

  public static final void setInL(java.lang.Long[]);
    Code:
       0: aload_0
       1: ldc           #23                 // String <set-?>
       3: invokestatic  #29                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: putstatic     #45                 // Field inL:[Ljava/lang/Long;
      10: return

  public static final java.lang.Long[] getOutUpL();
    Code:
       0: getstatic     #51                 // Field outUpL:[Ljava/lang/Long;
       3: areturn

  public static final void setOutUpL(java.lang.Long[]);
    Code:
       0: aload_0
       1: ldc           #23                 // String <set-?>
       3: invokestatic  #29                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: putstatic     #51                 // Field outUpL:[Ljava/lang/Long;
      10: return

  public static final java.lang.Long[] getOutDownL();
    Code:
       0: getstatic     #56                 // Field outDownL:[Ljava/lang/Long;
       3: areturn

  public static final void setOutDownL(java.lang.Long[]);
    Code:
       0: aload_0
       1: ldc           #23                 // String <set-?>
       3: invokestatic  #29                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: putstatic     #56                 // Field outDownL:[Ljava/lang/Long;
      10: return

  public static final int getRoot();
    Code:
       0: getstatic     #61                 // Field root:I
       3: ireturn

  public static final void setRoot(int);
    Code:
       0: iload_0
       1: putstatic     #61                 // Field root:I
       4: return

  public static final java.util.List<java.lang.Integer>[] init();
    Code:
       0: getstatic     #20                 // Field input:Ljava/util/Scanner;
       3: invokevirtual #70                 // Method java/util/Scanner.nextInt:()I
       6: putstatic     #10                 // Field numberOfEmployees:I
       9: iconst_0
      10: istore_1
      11: getstatic     #10                 // Field numberOfEmployees:I
      14: istore_2
      15: iload_2
      16: anewarray     #72                 // class java/util/List
      19: astore_3
      20: iload_1
      21: iload_2
      22: if_icmpge     48
      25: iload_1
      26: istore        4
      28: aload_3
      29: iload         4
      31: new           #74                 // class java/util/ArrayList
      34: dup
      35: invokespecial #78                 // Method java/util/ArrayList."<init>":()V
      38: checkcast     #72                 // class java/util/List
      41: aastore
      42: iinc          1, 1
      45: goto          20
      48: aload_3
      49: astore_0
      50: iconst_0
      51: istore_2
      52: getstatic     #10                 // Field numberOfEmployees:I
      55: istore_3
      56: iload_3
      57: newarray       boolean
      59: astore        4
      61: iload_2
      62: iload_3
      63: if_icmpge     81
      66: iload_2
      67: istore        5
      69: aload         4
      71: iload         5
      73: iconst_1
      74: bastore
      75: iinc          2, 1
      78: goto          61
      81: aload         4
      83: astore_1
      84: iconst_0
      85: istore_2
      86: getstatic     #10                 // Field numberOfEmployees:I
      89: istore_3
      90: iload_2
      91: iload_3
      92: if_icmpge     170
      95: getstatic     #36                 // Field costs:Ljava/util/List;
      98: getstatic     #20                 // Field input:Ljava/util/Scanner;
     101: invokevirtual #70                 // Method java/util/Scanner.nextInt:()I
     104: invokestatic  #84                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     107: invokeinterface #88,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     112: pop
     113: getstatic     #20                 // Field input:Ljava/util/Scanner;
     116: invokevirtual #70                 // Method java/util/Scanner.nextInt:()I
     119: istore        4
     121: iconst_0
     122: istore        5
     124: iload         5
     126: iload         4
     128: if_icmpge     164
     131: getstatic     #20                 // Field input:Ljava/util/Scanner;
     134: invokevirtual #70                 // Method java/util/Scanner.nextInt:()I
     137: istore        6
     139: aload_0
     140: iload_2
     141: aaload
     142: iload         6
     144: invokestatic  #84                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     147: invokeinterface #88,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     152: pop
     153: aload_1
     154: iload         6
     156: iconst_0
     157: bastore
     158: iinc          5, 1
     161: goto          124
     164: iinc          2, 1
     167: goto          90
     170: iconst_0
     171: istore_2
     172: getstatic     #10                 // Field numberOfEmployees:I
     175: istore_3
     176: iload_2
     177: iload_3
     178: if_icmpge     200
     181: aload_1
     182: iload_2
     183: baload
     184: ifeq          194
     187: iload_2
     188: putstatic     #61                 // Field root:I
     191: goto          200
     194: iinc          2, 1
     197: goto          176
     200: aload_0
     201: areturn

  public static final void solve(java.util.List<java.lang.Integer>[]);
    Code:
       0: aload_0
       1: ldc           #102                // String adjList
       3: invokestatic  #29                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: iconst_0
       7: istore_1
       8: getstatic     #10                 // Field numberOfEmployees:I
      11: istore_2
      12: iload_2
      13: anewarray     #104                // class java/lang/Long
      16: astore_3
      17: iload_1
      18: iload_2
      19: if_icmpge     39
      22: iload_1
      23: istore        4
      25: aload_3
      26: iload         4
      28: lconst_0
      29: invokestatic  #107                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      32: aastore
      33: iinc          1, 1
      36: goto          17
      39: aload_3
      40: putstatic     #45                 // Field inL:[Ljava/lang/Long;
      43: iconst_0
      44: istore_1
      45: getstatic     #36                 // Field costs:Ljava/util/List;
      48: invokeinterface #110,  1          // InterfaceMethod java/util/List.size:()I
      53: istore_2
      54: iload_1
      55: iload_2
      56: if_icmpge     89
      59: getstatic     #45                 // Field inL:[Ljava/lang/Long;
      62: iload_1
      63: getstatic     #36                 // Field costs:Ljava/util/List;
      66: iload_1
      67: invokeinterface #114,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      72: checkcast     #116                // class java/lang/Number
      75: invokevirtual #119                // Method java/lang/Number.intValue:()I
      78: i2l
      79: invokestatic  #107                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      82: aastore
      83: iinc          1, 1
      86: goto          54
      89: iconst_0
      90: istore_1
      91: getstatic     #10                 // Field numberOfEmployees:I
      94: istore_2
      95: iload_2
      96: anewarray     #104                // class java/lang/Long
      99: astore_3
     100: iload_1
     101: iload_2
     102: if_icmpge     122
     105: iload_1
     106: istore        4
     108: aload_3
     109: iload         4
     111: lconst_0
     112: invokestatic  #107                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     115: aastore
     116: iinc          1, 1
     119: goto          100
     122: aload_3
     123: putstatic     #56                 // Field outDownL:[Ljava/lang/Long;
     126: iconst_0
     127: istore_1
     128: getstatic     #10                 // Field numberOfEmployees:I
     131: istore_2
     132: iload_2
     133: anewarray     #104                // class java/lang/Long
     136: astore_3
     137: iload_1
     138: iload_2
     139: if_icmpge     159
     142: iload_1
     143: istore        4
     145: aload_3
     146: iload         4
     148: lconst_0
     149: invokestatic  #107                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     152: aastore
     153: iinc          1, 1
     156: goto          137
     159: aload_3
     160: putstatic     #51                 // Field outUpL:[Ljava/lang/Long;
     163: getstatic     #61                 // Field root:I
     166: aload_0
     167: invokestatic  #123                // Method fillTable2:(I[Ljava/util/List;)V
     170: getstatic     #56                 // Field outDownL:[Ljava/lang/Long;
     173: getstatic     #61                 // Field root:I
     176: aaload
     177: invokevirtual #127                // Method java/lang/Long.longValue:()J
     180: getstatic     #45                 // Field inL:[Ljava/lang/Long;
     183: getstatic     #61                 // Field root:I
     186: aaload
     187: invokevirtual #127                // Method java/lang/Long.longValue:()J
     190: invokestatic  #133                // Method java/lang/Math.min:(JJ)J
     193: lstore_1
     194: getstatic     #139                // Field java/lang/System.out:Ljava/io/PrintStream;
     197: lload_1
     198: invokevirtual #145                // Method java/io/PrintStream.println:(J)V
     201: return

  public static final void fillTable2(int, java.util.List<java.lang.Integer>[]);
    Code:
       0: aload_1
       1: ldc           #102                // String adjList
       3: invokestatic  #29                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: iload_0
       8: aaload
       9: invokeinterface #151,  1          // InterfaceMethod java/util/List.isEmpty:()Z
      14: ifeq          29
      17: getstatic     #56                 // Field outDownL:[Ljava/lang/Long;
      20: iload_0
      21: ldc2_w        #152                // long 9223372036854775807l
      24: invokestatic  #107                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      27: aastore
      28: return
      29: ldc2_w        #152                // long 9223372036854775807l
      32: lstore_2
      33: aload_1
      34: iload_0
      35: aaload
      36: invokeinterface #157,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      41: astore        4
      43: aload         4
      45: invokeinterface #162,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z
      50: ifeq          216
      53: aload         4
      55: invokeinterface #166,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      60: checkcast     #116                // class java/lang/Number
      63: invokevirtual #119                // Method java/lang/Number.intValue:()I
      66: istore        5
      68: iload         5
      70: aload_1
      71: invokestatic  #123                // Method fillTable2:(I[Ljava/util/List;)V
      74: getstatic     #45                 // Field inL:[Ljava/lang/Long;
      77: astore        6
      79: aload         6
      81: iload_0
      82: aload         6
      84: iload_0
      85: aaload
      86: invokevirtual #127                // Method java/lang/Long.longValue:()J
      89: getstatic     #51                 // Field outUpL:[Ljava/lang/Long;
      92: iload         5
      94: aaload
      95: invokevirtual #127                // Method java/lang/Long.longValue:()J
      98: ladd
      99: invokestatic  #107                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     102: aastore
     103: getstatic     #51                 // Field outUpL:[Ljava/lang/Long;
     106: astore        6
     108: aload         6
     110: iload_0
     111: aload         6
     113: iload_0
     114: aaload
     115: invokevirtual #127                // Method java/lang/Long.longValue:()J
     118: getstatic     #45                 // Field inL:[Ljava/lang/Long;
     121: iload         5
     123: aaload
     124: invokevirtual #127                // Method java/lang/Long.longValue:()J
     127: getstatic     #56                 // Field outDownL:[Ljava/lang/Long;
     130: iload         5
     132: aaload
     133: invokevirtual #127                // Method java/lang/Long.longValue:()J
     136: invokestatic  #133                // Method java/lang/Math.min:(JJ)J
     139: ladd
     140: invokestatic  #107                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     143: aastore
     144: getstatic     #56                 // Field outDownL:[Ljava/lang/Long;
     147: astore        6
     149: aload         6
     151: iload_0
     152: aload         6
     154: iload_0
     155: aaload
     156: invokevirtual #127                // Method java/lang/Long.longValue:()J
     159: getstatic     #45                 // Field inL:[Ljava/lang/Long;
     162: iload         5
     164: aaload
     165: invokevirtual #127                // Method java/lang/Long.longValue:()J
     168: getstatic     #56                 // Field outDownL:[Ljava/lang/Long;
     171: iload         5
     173: aaload
     174: invokevirtual #127                // Method java/lang/Long.longValue:()J
     177: invokestatic  #133                // Method java/lang/Math.min:(JJ)J
     180: ladd
     181: invokestatic  #107                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     184: aastore
     185: getstatic     #45                 // Field inL:[Ljava/lang/Long;
     188: iload         5
     190: aaload
     191: invokevirtual #127                // Method java/lang/Long.longValue:()J
     194: getstatic     #56                 // Field outDownL:[Ljava/lang/Long;
     197: iload         5
     199: aaload
     200: invokevirtual #127                // Method java/lang/Long.longValue:()J
     203: lsub
     204: lconst_0
     205: invokestatic  #169                // Method java/lang/Math.max:(JJ)J
     208: lload_2
     209: invokestatic  #133                // Method java/lang/Math.min:(JJ)J
     212: lstore_2
     213: goto          43
     216: getstatic     #56                 // Field outDownL:[Ljava/lang/Long;
     219: astore        4
     221: aload         4
     223: iload_0
     224: aload         4
     226: iload_0
     227: aaload
     228: invokevirtual #127                // Method java/lang/Long.longValue:()J
     231: lload_2
     232: ladd
     233: invokestatic  #107                // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     236: aastore
     237: return

  public static final void main(java.lang.String[]);
    Code:
       0: aload_0
       1: ldc           #177                // String args
       3: invokestatic  #29                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: invokestatic  #179                // Method init:()[Ljava/util/List;
       9: astore_1
      10: aload_1
      11: invokestatic  #181                // Method solve:([Ljava/util/List;)V
      14: return

  static {};
    Code:
       0: new           #67                 // class java/util/Scanner
       3: dup
       4: getstatic     #187                // Field java/lang/System.in:Ljava/io/InputStream;
       7: invokespecial #190                // Method java/util/Scanner."<init>":(Ljava/io/InputStream;)V
      10: putstatic     #20                 // Field input:Ljava/util/Scanner;
      13: new           #74                 // class java/util/ArrayList
      16: dup
      17: invokespecial #78                 // Method java/util/ArrayList."<init>":()V
      20: checkcast     #72                 // class java/util/List
      23: putstatic     #36                 // Field costs:Ljava/util/List;
      26: iconst_0
      27: anewarray     #104                // class java/lang/Long
      30: putstatic     #45                 // Field inL:[Ljava/lang/Long;
      33: iconst_0
      34: anewarray     #104                // class java/lang/Long
      37: putstatic     #51                 // Field outUpL:[Ljava/lang/Long;
      40: iconst_0
      41: anewarray     #104                // class java/lang/Long
      44: putstatic     #56                 // Field outDownL:[Ljava/lang/Long;
      47: iconst_m1
      48: putstatic     #61                 // Field root:I
      51: return
}


import java.util.*
import kotlin.system.exitProcess

// Solution for https://open.kattis.com/problems/coloring
// With help from https://github.com/amartop

fun main(args: Array<String>){
    val input = Scanner(System.`in`)
    val vertices = input.nextLine().toInt()
    val adjMatrix = Array(vertices,{IntArray(vertices)})
    var coloredArr = IntArray(vertices, { x -> 1})

    for(vert in 0 until vertices){
        val line = input.nextLine()
        val numberList = line.split(" ").map { x -> x.toInt() }
        for(number in numberList){
            adjMatrix[vert][number] = 1
            adjMatrix[number][vert] = 1
        }
    }

    for(i in 1..vertices+1){
        recursiveSolve(i,adjMatrix,0,coloredArr)
    }

}

fun recursiveSolve(numberOfColors: Int, adjMatrix: Array<IntArray>, currentVertex: Int, vertColored: IntArray){
    // 1. Verify valid color.
    val colorOk = colorOk(adjMatrix,currentVertex,vertColored)

    if(!colorOk){
        return
    }

    if(currentVertex == adjMatrix.size-1){
        println(numberOfColors+1)
        exitProcess(0)
    }

    for(i in 1..numberOfColors+1) {
        vertColored[currentVertex+1] = i // new color
        recursiveSolve(numberOfColors,adjMatrix,currentVertex+1,vertColored)
    }
}

fun colorOk(adjMatrix: Array<IntArray>, currentVertex: Int, vertColored: IntArray): Boolean {

    for(i in 0..currentVertex-1){
        if(adjMatrix[i][currentVertex] != 0 && vertColored[i] == vertColored[currentVertex]){
            return false;
        }
    }

    /*for(i in 0 until adjMatrix.size){
        if(i == currentVertex){
            continue
        }
        if(adjMatrix[currentVertex][i] != 0){ // Has neighbour?
            if(vertColored[i] == vertColored[currentVertex]){ // Same color?
                return false
            }
        }
    }*/
    return true
}

fun ClosedRange<Int>.random() = Random().nextInt(endInclusive - start) + start

Compiled from "ColoringGraphs.kt"
public final class ColoringGraphsKt {
  public static final void main(java.lang.String[]);
    Code:
       0: aload_0
       1: ldc           #9                  // String args
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #17                 // class java/util/Scanner
       9: dup
      10: getstatic     #23                 // Field java/lang/System.in:Ljava/io/InputStream;
      13: invokespecial #27                 // Method java/util/Scanner."<init>":(Ljava/io/InputStream;)V
      16: astore_1
      17: aload_1
      18: invokevirtual #31                 // Method java/util/Scanner.nextLine:()Ljava/lang/String;
      21: dup
      22: ldc           #33                 // String nextLine(...)
      24: invokestatic  #36                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
      27: invokestatic  #42                 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
      30: istore_2
      31: iconst_0
      32: istore        4
      34: iload_2
      35: anewarray     #44                 // class "[I"
      38: astore        5
      40: iload         4
      42: iload_2
      43: if_icmpge     64
      46: iload         4
      48: istore        6
      50: aload         5
      52: iload         6
      54: iload_2
      55: newarray       int
      57: aastore
      58: iinc          4, 1
      61: goto          40
      64: aload         5
      66: astore_3
      67: iconst_0
      68: istore        5
      70: iload_2
      71: newarray       int
      73: astore        6
      75: iload         5
      77: iload_2
      78: if_icmpge     97
      81: iload         5
      83: istore        7
      85: aload         6
      87: iload         7
      89: iconst_1
      90: iastore
      91: iinc          5, 1
      94: goto          75
      97: aload         6
      99: astore        4
     101: iconst_0
     102: istore        5
     104: iload         5
     106: iload_2
     107: if_icmpge     312
     110: aload_1
     111: invokevirtual #31                 // Method java/util/Scanner.nextLine:()Ljava/lang/String;
     114: astore        6
     116: aload         6
     118: invokestatic  #48                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     121: aload         6
     123: checkcast     #50                 // class java/lang/CharSequence
     126: iconst_1
     127: anewarray     #52                 // class java/lang/String
     130: astore        8
     132: aload         8
     134: iconst_0
     135: ldc           #54                 // String
     137: aastore
     138: aload         8
     140: iconst_0
     141: iconst_0
     142: bipush        6
     144: aconst_null
     145: invokestatic  #60                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
     148: checkcast     #62                 // class java/lang/Iterable
     151: astore        8
     153: iconst_0
     154: istore        9
     156: aload         8
     158: astore        10
     160: new           #64                 // class java/util/ArrayList
     163: dup
     164: aload         8
     166: bipush        10
     168: invokestatic  #70                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     171: invokespecial #73                 // Method java/util/ArrayList."<init>":(I)V
     174: checkcast     #75                 // class java/util/Collection
     177: astore        11
     179: iconst_0
     180: istore        12
     182: aload         10
     184: invokeinterface #79,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     189: astore        13
     191: aload         13
     193: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     198: ifeq          245
     201: aload         13
     203: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     208: astore        14
     210: aload         11
     212: aload         14
     214: checkcast     #52                 // class java/lang/String
     217: astore        15
     219: astore        17
     221: iconst_0
     222: istore        16
     224: aload         15
     226: invokestatic  #42                 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     229: nop
     230: invokestatic  #93                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     233: aload         17
     235: swap
     236: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     241: pop
     242: goto          191
     245: aload         11
     247: checkcast     #99                 // class java/util/List
     250: nop
     251: astore        7
     253: aload         7
     255: invokeinterface #100,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     260: astore        8
     262: aload         8
     264: invokeinterface #85,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     269: ifeq          306
     272: aload         8
     274: invokeinterface #89,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     279: checkcast     #102                // class java/lang/Number
     282: invokevirtual #106                // Method java/lang/Number.intValue:()I
     285: istore        9
     287: aload_3
     288: iload         5
     290: aaload
     291: iload         9
     293: iconst_1
     294: iastore
     295: aload_3
     296: iload         9
     298: aaload
     299: iload         5
     301: iconst_1
     302: iastore
     303: goto          262
     306: iinc          5, 1
     309: goto          104
     312: iconst_1
     313: istore        5
     315: iload_2
     316: iconst_1
     317: iadd
     318: istore        6
     320: iload         5
     322: iload         6
     324: if_icmpgt     349
     327: iload         5
     329: aload_3
     330: iconst_0
     331: aload         4
     333: invokestatic  #110                // Method recursiveSolve:(I[[II[I)V
     336: iload         5
     338: iload         6
     340: if_icmpeq     349
     343: iinc          5, 1
     346: goto          327
     349: return

  public static final void recursiveSolve(int, int[][], int, int[]);
    Code:
       0: aload_1
       1: ldc           #139                // String adjMatrix
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_3
       7: ldc           #141                // String vertColored
       9: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_1
      13: iload_2
      14: aload_3
      15: invokestatic  #145                // Method colorOk:([[II[I)Z
      18: istore        4
      20: iload         4
      22: ifne          26
      25: return
      26: iload_2
      27: aload_1
      28: checkcast     #147                // class "[Ljava/lang/Object;"
      31: arraylength
      32: iconst_1
      33: isub
      34: if_icmpne     64
      37: iload_0
      38: iconst_1
      39: iadd
      40: istore        5
      42: getstatic     #151                // Field java/lang/System.out:Ljava/io/PrintStream;
      45: iload         5
      47: invokevirtual #156                // Method java/io/PrintStream.println:(I)V
      50: iconst_0
      51: invokestatic  #159                // Method java/lang/System.exit:(I)V
      54: new           #161                // class java/lang/RuntimeException
      57: dup
      58: ldc           #163                // String System.exit returned normally, while it was supposed to halt JVM.
      60: invokespecial #166                // Method java/lang/RuntimeException."<init>":(Ljava/lang/String;)V
      63: athrow
      64: iconst_1
      65: istore        5
      67: iload_0
      68: iconst_1
      69: iadd
      70: istore        6
      72: iload         5
      74: iload         6
      76: if_icmpgt     108
      79: aload_3
      80: iload_2
      81: iconst_1
      82: iadd
      83: iload         5
      85: iastore
      86: iload_0
      87: aload_1
      88: iload_2
      89: iconst_1
      90: iadd
      91: aload_3
      92: invokestatic  #110                // Method recursiveSolve:(I[[II[I)V
      95: iload         5
      97: iload         6
      99: if_icmpeq     108
     102: iinc          5, 1
     105: goto          79
     108: return

  public static final boolean colorOk(int[][], int, int[]);
    Code:
       0: aload_0
       1: ldc           #139                // String adjMatrix
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #141                // String vertColored
       9: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: iconst_0
      13: istore_3
      14: iload_1
      15: iconst_1
      16: isub
      17: istore        4
      19: iload_3
      20: iload         4
      22: if_icmpgt     56
      25: aload_0
      26: iload_3
      27: aaload
      28: iload_1
      29: iaload
      30: ifeq          44
      33: aload_2
      34: iload_3
      35: iaload
      36: aload_2
      37: iload_1
      38: iaload
      39: if_icmpne     44
      42: iconst_0
      43: ireturn
      44: iload_3
      45: iload         4
      47: if_icmpeq     56
      50: iinc          3, 1
      53: goto          25
      56: iconst_1
      57: ireturn

  public static final int random(kotlin.ranges.ClosedRange<java.lang.Integer>);
    Code:
       0: aload_0
       1: ldc           #174                // String <this>
       3: invokestatic  #15                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: new           #176                // class java/util/Random
       9: dup
      10: invokespecial #179                // Method java/util/Random."<init>":()V
      13: aload_0
      14: invokeinterface #185,  1          // InterfaceMethod kotlin/ranges/ClosedRange.getEndInclusive:()Ljava/lang/Comparable;
      19: checkcast     #102                // class java/lang/Number
      22: invokevirtual #106                // Method java/lang/Number.intValue:()I
      25: aload_0
      26: invokeinterface #188,  1          // InterfaceMethod kotlin/ranges/ClosedRange.getStart:()Ljava/lang/Comparable;
      31: checkcast     #102                // class java/lang/Number
      34: invokevirtual #106                // Method java/lang/Number.intValue:()I
      37: isub
      38: invokevirtual #192                // Method java/util/Random.nextInt:(I)I
      41: aload_0
      42: invokeinterface #188,  1          // InterfaceMethod kotlin/ranges/ClosedRange.getStart:()Ljava/lang/Comparable;
      47: checkcast     #102                // class java/lang/Number
      50: invokevirtual #106                // Method java/lang/Number.intValue:()I
      53: iadd
      54: ireturn
}