package marathons.icpcchallenge.y2020_huaweiGraphMining.practice

import java.io.*
import kotlin.random.Random

private fun solve(edges: List<List<Int>>): BooleanArray {
	val n = edges.flatten().maxOrNull()!! + 1
	val nei = List(n) { mutableListOf<Int>() }
	for ((u, v) in edges) { nei[u].add(v); nei[v].add(u) }
	val r = Random(566)
	@Suppress("unused")
	fun greedy() {
		val set = BooleanArray(n)
		val add = IntArray(n) { r.nextInt(n) }
		for (u in nei.indices.sortedBy { nei[it].size * n + add[it] }) {
			set[u] = nei[u].none { set[it] }
		}
	}
	val status = IntArray(n) { 2 }
	val s = 64
	val deg = IntArray(n) { nei[it].size * s + r.nextInt(s) }
	val byDeg = List(deg.maxOrNull()!! + 1) { mutableSetOf<Int>() }
	for (u in nei.indices) byDeg[deg[u]].add(u)
	while (true) {
		val u = byDeg.firstOrNull { it.isNotEmpty() }?.first() ?: break
		byDeg[deg[u]].remove(u)
		status[u] = 1
		for (v in nei[u]) {
			if (status[v] < 2) continue
			status[v] = 0
			byDeg[deg[v]].remove(v)
			for (w in nei[v]) {
				if (status[w] < 2) continue
				byDeg[deg[w]].remove(w)
				deg[w] -= s
				byDeg[deg[w]].add(w)
			}
		}
	}
	return BooleanArray(n) { status[it] == 1 }
}

fun main() {
	for (test in 1..4) {
		val filename = "b$test"
		val input = BufferedReader(FileReader("$filename.in"))
		val output = PrintWriter("$filename.out")
		fun readLn() = input.readLine()
		fun readStrings() = readLn().split(" ")
		fun readInts() = readStrings().map { it.toInt() }
		val (_, m) = readInts()
		val edges = List(m) { readInts().map { it - 1 } }
		val ans = solve(edges).map { if (it) 1 else 0 }
		output.println(ans.sum())
		output.println(ans.joinToString(" "))
		output.close()
	}
}

Compiled from "b.kt"
public final class marathons.icpcchallenge.y2020_huaweiGraphMining.practice.BKt {
  private static final boolean[] solve(java.util.List<? extends java.util.List<java.lang.Integer>>);
    Code:
       0: aload_0
       1: checkcast     #9                  // class java/lang/Iterable
       4: invokestatic  #15                 // Method kotlin/collections/CollectionsKt.flatten:(Ljava/lang/Iterable;)Ljava/util/List;
       7: checkcast     #9                  // class java/lang/Iterable
      10: invokestatic  #19                 // Method kotlin/collections/CollectionsKt.maxOrNull:(Ljava/lang/Iterable;)Ljava/lang/Comparable;
      13: dup
      14: invokestatic  #25                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
      17: checkcast     #27                 // class java/lang/Number
      20: invokevirtual #31                 // Method java/lang/Number.intValue:()I
      23: iconst_1
      24: iadd
      25: istore_1
      26: new           #33                 // class java/util/ArrayList
      29: dup
      30: iload_1
      31: invokespecial #37                 // Method java/util/ArrayList."<init>":(I)V
      34: astore_3
      35: iconst_0
      36: istore        4
      38: iload         4
      40: iload_1
      41: if_icmpge     82
      44: iload         4
      46: istore        5
      48: aload_3
      49: iload         5
      51: istore        6
      53: astore        16
      55: iconst_0
      56: istore        7
      58: new           #33                 // class java/util/ArrayList
      61: dup
      62: invokespecial #40                 // Method java/util/ArrayList."<init>":()V
      65: checkcast     #42                 // class java/util/List
      68: nop
      69: aload         16
      71: swap
      72: invokevirtual #46                 // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
      75: pop
      76: iinc          4, 1
      79: goto          38
      82: aload_3
      83: checkcast     #42                 // class java/util/List
      86: astore_2
      87: aload_0
      88: invokeinterface #50,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      93: astore_3
      94: aload_3
      95: invokeinterface #56,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     100: ifeq          193
     103: aload_3
     104: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     109: checkcast     #42                 // class java/util/List
     112: astore        4
     114: aload         4
     116: iconst_0
     117: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     122: checkcast     #27                 // class java/lang/Number
     125: invokevirtual #31                 // Method java/lang/Number.intValue:()I
     128: istore        5
     130: aload         4
     132: iconst_1
     133: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     138: checkcast     #27                 // class java/lang/Number
     141: invokevirtual #31                 // Method java/lang/Number.intValue:()I
     144: istore        6
     146: aload_2
     147: iload         5
     149: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     154: checkcast     #42                 // class java/util/List
     157: iload         6
     159: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     162: invokeinterface #71,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     167: pop
     168: aload_2
     169: iload         6
     171: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     176: checkcast     #42                 // class java/util/List
     179: iload         5
     181: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     184: invokeinterface #71,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     189: pop
     190: goto          94
     193: sipush        566
     196: invokestatic  #77                 // Method kotlin/random/RandomKt.Random:(I)Lkotlin/random/Random;
     199: astore_3
     200: iconst_0
     201: istore        5
     203: iload_1
     204: newarray       int
     206: astore        6
     208: iload         5
     210: iload_1
     211: if_icmpge     230
     214: iload         5
     216: istore        7
     218: aload         6
     220: iload         7
     222: iconst_2
     223: iastore
     224: iinc          5, 1
     227: goto          208
     230: aload         6
     232: astore        4
     234: bipush        64
     236: istore        5
     238: iconst_0
     239: istore        7
     241: iload_1
     242: newarray       int
     244: astore        8
     246: iload         7
     248: iload_1
     249: if_icmpge     293
     252: iload         7
     254: istore        9
     256: aload         8
     258: iload         9
     260: aload_2
     261: iload         9
     263: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     268: checkcast     #42                 // class java/util/List
     271: invokeinterface #80,  1           // InterfaceMethod java/util/List.size:()I
     276: iload         5
     278: imul
     279: aload_3
     280: iload         5
     282: invokevirtual #86                 // Method kotlin/random/Random.nextInt:(I)I
     285: iadd
     286: iastore
     287: iinc          7, 1
     290: goto          246
     293: aload         8
     295: astore        6
     297: aload         6
     299: invokestatic  #91                 // Method kotlin/collections/ArraysKt.maxOrNull:([I)Ljava/lang/Integer;
     302: dup
     303: invokestatic  #25                 // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     306: invokevirtual #92                 // Method java/lang/Integer.intValue:()I
     309: iconst_1
     310: iadd
     311: istore        8
     313: new           #33                 // class java/util/ArrayList
     316: dup
     317: iload         8
     319: invokespecial #37                 // Method java/util/ArrayList."<init>":(I)V
     322: astore        9
     324: iconst_0
     325: istore        10
     327: iload         10
     329: iload         8
     331: if_icmpge     373
     334: iload         10
     336: istore        11
     338: aload         9
     340: iload         11
     342: istore        12
     344: astore        16
     346: iconst_0
     347: istore        13
     349: new           #94                 // class java/util/LinkedHashSet
     352: dup
     353: invokespecial #95                 // Method java/util/LinkedHashSet."<init>":()V
     356: checkcast     #97                 // class java/util/Set
     359: nop
     360: aload         16
     362: swap
     363: invokevirtual #46                 // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     366: pop
     367: iinc          10, 1
     370: goto          327
     373: aload         9
     375: checkcast     #42                 // class java/util/List
     378: astore        7
     380: iconst_0
     381: istore        8
     383: aload_2
     384: checkcast     #99                 // class java/util/Collection
     387: invokeinterface #100,  1          // InterfaceMethod java/util/Collection.size:()I
     392: istore        9
     394: iload         8
     396: iload         9
     398: if_icmpge     433
     401: aload         7
     403: aload         6
     405: iload         8
     407: iaload
     408: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     413: checkcast     #97                 // class java/util/Set
     416: iload         8
     418: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     421: invokeinterface #101,  2          // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
     426: pop
     427: iinc          8, 1
     430: goto          394
     433: nop
     434: aload         7
     436: checkcast     #9                  // class java/lang/Iterable
     439: astore        10
     441: iconst_0
     442: istore        11
     444: aload         10
     446: invokeinterface #102,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     451: astore        12
     453: aload         12
     455: invokeinterface #56,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     460: ifeq          509
     463: aload         12
     465: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     470: astore        13
     472: aload         13
     474: checkcast     #97                 // class java/util/Set
     477: astore        14
     479: iconst_0
     480: istore        15
     482: aload         14
     484: checkcast     #99                 // class java/util/Collection
     487: invokeinterface #105,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     492: ifne          499
     495: iconst_1
     496: goto          500
     499: iconst_0
     500: nop
     501: ifeq          453
     504: aload         13
     506: goto          510
     509: aconst_null
     510: checkcast     #97                 // class java/util/Set
     513: dup
     514: ifnull        532
     517: checkcast     #9                  // class java/lang/Iterable
     520: invokestatic  #109                // Method kotlin/collections/CollectionsKt.first:(Ljava/lang/Iterable;)Ljava/lang/Object;
     523: checkcast     #27                 // class java/lang/Number
     526: invokevirtual #31                 // Method java/lang/Number.intValue:()I
     529: goto          536
     532: pop
     533: goto          774
     536: istore        8
     538: aload         7
     540: aload         6
     542: iload         8
     544: iaload
     545: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     550: checkcast     #97                 // class java/util/Set
     553: iload         8
     555: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     558: invokeinterface #112,  2          // InterfaceMethod java/util/Set.remove:(Ljava/lang/Object;)Z
     563: pop
     564: aload         4
     566: iload         8
     568: iconst_1
     569: iastore
     570: aload_2
     571: iload         8
     573: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     578: checkcast     #42                 // class java/util/List
     581: invokeinterface #50,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     586: astore        9
     588: aload         9
     590: invokeinterface #56,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     595: ifeq          433
     598: aload         9
     600: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     605: checkcast     #27                 // class java/lang/Number
     608: invokevirtual #31                 // Method java/lang/Number.intValue:()I
     611: istore        10
     613: aload         4
     615: iload         10
     617: iaload
     618: iconst_2
     619: if_icmplt     588
     622: aload         4
     624: iload         10
     626: iconst_0
     627: iastore
     628: aload         7
     630: aload         6
     632: iload         10
     634: iaload
     635: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     640: checkcast     #97                 // class java/util/Set
     643: iload         10
     645: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     648: invokeinterface #112,  2          // InterfaceMethod java/util/Set.remove:(Ljava/lang/Object;)Z
     653: pop
     654: aload_2
     655: iload         10
     657: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     662: checkcast     #42                 // class java/util/List
     665: invokeinterface #50,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
     670: astore        11
     672: aload         11
     674: invokeinterface #56,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     679: ifeq          588
     682: aload         11
     684: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     689: checkcast     #27                 // class java/lang/Number
     692: invokevirtual #31                 // Method java/lang/Number.intValue:()I
     695: istore        12
     697: aload         4
     699: iload         12
     701: iaload
     702: iconst_2
     703: if_icmplt     672
     706: aload         7
     708: aload         6
     710: iload         12
     712: iaload
     713: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     718: checkcast     #97                 // class java/util/Set
     721: iload         12
     723: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     726: invokeinterface #112,  2          // InterfaceMethod java/util/Set.remove:(Ljava/lang/Object;)Z
     731: pop
     732: aload         6
     734: iload         12
     736: aload         6
     738: iload         12
     740: iaload
     741: iload         5
     743: isub
     744: iastore
     745: aload         7
     747: aload         6
     749: iload         12
     751: iaload
     752: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     757: checkcast     #97                 // class java/util/Set
     760: iload         12
     762: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     765: invokeinterface #101,  2          // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
     770: pop
     771: goto          672
     774: iconst_0
     775: istore        8
     777: iload_1
     778: newarray       boolean
     780: astore        9
     782: iload         8
     784: iload_1
     785: if_icmpge     817
     788: iload         8
     790: istore        10
     792: aload         9
     794: iload         10
     796: aload         4
     798: iload         10
     800: iaload
     801: iconst_1
     802: if_icmpne     809
     805: iconst_1
     806: goto          810
     809: iconst_0
     810: bastore
     811: iinc          8, 1
     814: goto          782
     817: aload         9
     819: areturn

  public static final void main();
    Code:
       0: iconst_1
       1: istore_0
       2: iload_0
       3: iconst_5
       4: if_icmpge     422
       7: new           #143                // class java/lang/StringBuilder
      10: dup
      11: invokespecial #144                // Method java/lang/StringBuilder."<init>":()V
      14: bipush        98
      16: invokevirtual #148                // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      19: iload_0
      20: invokevirtual #151                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      23: invokevirtual #155                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      26: astore_1
      27: new           #157                // class java/io/BufferedReader
      30: dup
      31: new           #159                // class java/io/FileReader
      34: dup
      35: new           #143                // class java/lang/StringBuilder
      38: dup
      39: invokespecial #144                // Method java/lang/StringBuilder."<init>":()V
      42: aload_1
      43: invokevirtual #162                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      46: ldc           #164                // String .in
      48: invokevirtual #162                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      51: invokevirtual #155                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      54: invokespecial #167                // Method java/io/FileReader."<init>":(Ljava/lang/String;)V
      57: checkcast     #169                // class java/io/Reader
      60: invokespecial #172                // Method java/io/BufferedReader."<init>":(Ljava/io/Reader;)V
      63: astore_2
      64: new           #174                // class java/io/PrintWriter
      67: dup
      68: new           #143                // class java/lang/StringBuilder
      71: dup
      72: invokespecial #144                // Method java/lang/StringBuilder."<init>":()V
      75: aload_1
      76: invokevirtual #162                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      79: ldc           #176                // String .out
      81: invokevirtual #162                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      84: invokevirtual #155                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      87: invokespecial #177                // Method java/io/PrintWriter."<init>":(Ljava/lang/String;)V
      90: astore_3
      91: aload_2
      92: invokestatic  #181                // Method main$readInts:(Ljava/io/BufferedReader;)Ljava/util/List;
      95: iconst_1
      96: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     101: checkcast     #27                 // class java/lang/Number
     104: invokevirtual #31                 // Method java/lang/Number.intValue:()I
     107: istore        4
     109: new           #33                 // class java/util/ArrayList
     112: dup
     113: iload         4
     115: invokespecial #37                 // Method java/util/ArrayList."<init>":(I)V
     118: astore        6
     120: iconst_0
     121: istore        7
     123: iload         7
     125: iload         4
     127: if_icmpge     267
     130: iload         7
     132: istore        8
     134: aload         6
     136: iload         8
     138: istore        9
     140: astore        21
     142: iconst_0
     143: istore        10
     145: aload_2
     146: invokestatic  #181                // Method main$readInts:(Ljava/io/BufferedReader;)Ljava/util/List;
     149: checkcast     #9                  // class java/lang/Iterable
     152: astore        11
     154: iconst_0
     155: istore        12
     157: aload         11
     159: astore        13
     161: new           #33                 // class java/util/ArrayList
     164: dup
     165: aload         11
     167: bipush        10
     169: invokestatic  #185                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     172: invokespecial #37                 // Method java/util/ArrayList."<init>":(I)V
     175: checkcast     #99                 // class java/util/Collection
     178: astore        14
     180: iconst_0
     181: istore        15
     183: aload         13
     185: invokeinterface #102,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     190: astore        16
     192: aload         16
     194: invokeinterface #56,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     199: ifeq          247
     202: aload         16
     204: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     209: astore        17
     211: aload         14
     213: aload         17
     215: checkcast     #27                 // class java/lang/Number
     218: invokevirtual #31                 // Method java/lang/Number.intValue:()I
     221: istore        18
     223: astore        19
     225: iconst_0
     226: istore        20
     228: iload         18
     230: iconst_1
     231: isub
     232: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     235: aload         19
     237: swap
     238: invokeinterface #186,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     243: pop
     244: goto          192
     247: aload         14
     249: checkcast     #42                 // class java/util/List
     252: nop
     253: nop
     254: aload         21
     256: swap
     257: invokevirtual #46                 // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     260: pop
     261: iinc          7, 1
     264: goto          123
     267: aload         6
     269: checkcast     #42                 // class java/util/List
     272: astore        5
     274: aload         5
     276: invokestatic  #188                // Method solve:(Ljava/util/List;)[Z
     279: astore        7
     281: iconst_0
     282: istore        8
     284: aload         7
     286: astore        9
     288: new           #33                 // class java/util/ArrayList
     291: dup
     292: aload         7
     294: arraylength
     295: invokespecial #37                 // Method java/util/ArrayList."<init>":(I)V
     298: checkcast     #99                 // class java/util/Collection
     301: astore        10
     303: iconst_0
     304: istore        11
     306: iconst_0
     307: istore        12
     309: aload         9
     311: arraylength
     312: istore        13
     314: iload         12
     316: iload         13
     318: if_icmpge     367
     321: aload         9
     323: iload         12
     325: baload
     326: istore        14
     328: aload         10
     330: iload         14
     332: istore        15
     334: astore        21
     336: iconst_0
     337: istore        16
     339: iload         15
     341: ifeq          348
     344: iconst_1
     345: goto          349
     348: iconst_0
     349: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     352: aload         21
     354: swap
     355: invokeinterface #186,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     360: pop
     361: iinc          12, 1
     364: goto          314
     367: aload         10
     369: checkcast     #42                 // class java/util/List
     372: nop
     373: astore        6
     375: aload_3
     376: aload         6
     378: checkcast     #9                  // class java/lang/Iterable
     381: invokestatic  #192                // Method kotlin/collections/CollectionsKt.sumOfInt:(Ljava/lang/Iterable;)I
     384: invokevirtual #195                // Method java/io/PrintWriter.println:(I)V
     387: aload_3
     388: aload         6
     390: checkcast     #9                  // class java/lang/Iterable
     393: ldc           #197                // String
     395: checkcast     #199                // class java/lang/CharSequence
     398: aconst_null
     399: aconst_null
     400: iconst_0
     401: aconst_null
     402: aconst_null
     403: bipush        62
     405: aconst_null
     406: invokestatic  #203                // Method kotlin/collections/CollectionsKt.joinToString$default:(Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/String;
     409: invokevirtual #205                // Method java/io/PrintWriter.println:(Ljava/lang/String;)V
     412: aload_3
     413: invokevirtual #208                // Method java/io/PrintWriter.close:()V
     416: iinc          0, 1
     419: goto          2
     422: return

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

  private static final void solve$greedy(int, kotlin.random.Random, java.util.List<? extends java.util.List<java.lang.Integer>>);
    Code:
       0: iload_0
       1: newarray       boolean
       3: astore_3
       4: iconst_0
       5: istore        5
       7: iload_0
       8: newarray       int
      10: astore        6
      12: iload         5
      14: iload_0
      15: if_icmpge     38
      18: iload         5
      20: istore        7
      22: aload         6
      24: iload         7
      26: aload_1
      27: iload_0
      28: invokevirtual #86                 // Method kotlin/random/Random.nextInt:(I)I
      31: iastore
      32: iinc          5, 1
      35: goto          12
      38: aload         6
      40: astore        4
      42: aload_2
      43: checkcast     #99                 // class java/util/Collection
      46: invokestatic  #242                // Method kotlin/collections/CollectionsKt.getIndices:(Ljava/util/Collection;)Lkotlin/ranges/IntRange;
      49: checkcast     #9                  // class java/lang/Iterable
      52: astore        6
      54: iconst_0
      55: istore        7
      57: aload         6
      59: new           #244                // class marathons/icpcchallenge/y2020_huaweiGraphMining/practice/BKt$solve$greedy$$inlined$sortedBy$1
      62: dup
      63: aload_2
      64: iload_0
      65: aload         4
      67: invokespecial #247                // Method marathons/icpcchallenge/y2020_huaweiGraphMining/practice/BKt$solve$greedy$$inlined$sortedBy$1."<init>":(Ljava/util/List;I[I)V
      70: checkcast     #249                // class java/util/Comparator
      73: invokestatic  #253                // Method kotlin/collections/CollectionsKt.sortedWith:(Ljava/lang/Iterable;Ljava/util/Comparator;)Ljava/util/List;
      76: invokeinterface #50,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;
      81: astore        5
      83: aload         5
      85: invokeinterface #56,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      90: ifeq          221
      93: aload         5
      95: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     100: checkcast     #27                 // class java/lang/Number
     103: invokevirtual #31                 // Method java/lang/Number.intValue:()I
     106: istore        6
     108: aload_3
     109: iload         6
     111: aload_2
     112: iload         6
     114: invokeinterface #64,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     119: checkcast     #9                  // class java/lang/Iterable
     122: astore        7
     124: istore        14
     126: astore        13
     128: iconst_0
     129: istore        8
     131: aload         7
     133: instanceof    #99                 // class java/util/Collection
     136: ifeq          156
     139: aload         7
     141: checkcast     #99                 // class java/util/Collection
     144: invokeinterface #105,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     149: ifeq          156
     152: iconst_1
     153: goto          209
     156: aload         7
     158: invokeinterface #102,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     163: astore        9
     165: aload         9
     167: invokeinterface #56,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     172: ifeq          208
     175: aload         9
     177: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     182: astore        10
     184: aload         10
     186: checkcast     #27                 // class java/lang/Number
     189: invokevirtual #31                 // Method java/lang/Number.intValue:()I
     192: istore        11
     194: iconst_0
     195: istore        12
     197: aload_3
     198: iload         11
     200: baload
     201: ifeq          165
     204: iconst_0
     205: goto          209
     208: iconst_1
     209: istore        15
     211: aload         13
     213: iload         14
     215: iload         15
     217: bastore
     218: goto          83
     221: return

  private static final java.lang.String main$readLn(java.io.BufferedReader);
    Code:
       0: aload_0
       1: invokevirtual #264                // Method java/io/BufferedReader.readLine:()Ljava/lang/String;
       4: areturn

  private static final java.util.List<java.lang.String> main$readStrings(java.io.BufferedReader);
    Code:
       0: aload_0
       1: invokestatic  #268                // Method main$readLn:(Ljava/io/BufferedReader;)Ljava/lang/String;
       4: dup
       5: ldc_w         #270                // String main$readLn(...)
       8: invokestatic  #274                // Method kotlin/jvm/internal/Intrinsics.checkNotNullExpressionValue:(Ljava/lang/Object;Ljava/lang/String;)V
      11: checkcast     #199                // class java/lang/CharSequence
      14: iconst_1
      15: anewarray     #230                // class java/lang/String
      18: astore_1
      19: aload_1
      20: iconst_0
      21: ldc           #197                // String
      23: aastore
      24: aload_1
      25: iconst_0
      26: iconst_0
      27: bipush        6
      29: aconst_null
      30: invokestatic  #280                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      33: areturn

  private static final java.util.List<java.lang.Integer> main$readInts(java.io.BufferedReader);
    Code:
       0: aload_0
       1: invokestatic  #283                // Method main$readStrings:(Ljava/io/BufferedReader;)Ljava/util/List;
       4: checkcast     #9                  // class java/lang/Iterable
       7: astore_1
       8: iconst_0
       9: istore_2
      10: aload_1
      11: astore_3
      12: new           #33                 // class java/util/ArrayList
      15: dup
      16: aload_1
      17: bipush        10
      19: invokestatic  #185                // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      22: invokespecial #37                 // Method java/util/ArrayList."<init>":(I)V
      25: checkcast     #99                 // class java/util/Collection
      28: astore        4
      30: iconst_0
      31: istore        5
      33: aload_3
      34: invokeinterface #102,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      39: astore        6
      41: aload         6
      43: invokeinterface #56,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      48: ifeq          95
      51: aload         6
      53: invokeinterface #60,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      58: astore        7
      60: aload         4
      62: aload         7
      64: checkcast     #230                // class java/lang/String
      67: astore        8
      69: astore        10
      71: iconst_0
      72: istore        9
      74: aload         8
      76: invokestatic  #287                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
      79: nop
      80: invokestatic  #70                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      83: aload         10
      85: swap
      86: invokeinterface #186,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
      91: pop
      92: goto          41
      95: aload         4
      97: checkcast     #42                 // class java/util/List
     100: nop
     101: areturn
}

Compiled from "Comparisons.kt"
public final class marathons.icpcchallenge.y2020_huaweiGraphMining.practice.BKt$solve$greedy$$inlined$sortedBy$1<T> implements java.util.Comparator {
  final java.util.List $nei$inlined;

  final int $n$inlined;

  final int[] $add$inlined;

  public marathons.icpcchallenge.y2020_huaweiGraphMining.practice.BKt$solve$greedy$$inlined$sortedBy$1(java.util.List, int, int[]);
    Code:
       0: aload_0
       1: aload_1
       2: putfield      #22                 // Field $nei$inlined:Ljava/util/List;
       5: aload_0
       6: iload_2
       7: putfield      #24                 // Field $n$inlined:I
      10: aload_0
      11: aload_3
      12: putfield      #26                 // Field $add$inlined:[I
      15: aload_0
      16: invokespecial #29                 // Method java/lang/Object."<init>":()V
      19: return

  public final int compare(T, T);
    Code:
       0: aload_1
       1: checkcast     #36                 // class java/lang/Number
       4: invokevirtual #40                 // Method java/lang/Number.intValue:()I
       7: istore_3
       8: iconst_0
       9: istore        4
      11: aload_0
      12: getfield      #22                 // Field $nei$inlined:Ljava/util/List;
      15: iload_3
      16: invokeinterface #46,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      21: checkcast     #42                 // class java/util/List
      24: invokeinterface #49,  1           // InterfaceMethod java/util/List.size:()I
      29: aload_0
      30: getfield      #24                 // Field $n$inlined:I
      33: imul
      34: aload_0
      35: getfield      #26                 // Field $add$inlined:[I
      38: iload_3
      39: iaload
      40: iadd
      41: invokestatic  #55                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      44: checkcast     #57                 // class java/lang/Comparable
      47: aload_2
      48: checkcast     #36                 // class java/lang/Number
      51: invokevirtual #40                 // Method java/lang/Number.intValue:()I
      54: istore_3
      55: astore        5
      57: iconst_0
      58: istore        4
      60: aload_0
      61: getfield      #22                 // Field $nei$inlined:Ljava/util/List;
      64: iload_3
      65: invokeinterface #46,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      70: checkcast     #42                 // class java/util/List
      73: invokeinterface #49,  1           // InterfaceMethod java/util/List.size:()I
      78: aload_0
      79: getfield      #24                 // Field $n$inlined:I
      82: imul
      83: aload_0
      84: getfield      #26                 // Field $add$inlined:[I
      87: iload_3
      88: iaload
      89: iadd
      90: invokestatic  #55                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      93: aload         5
      95: swap
      96: checkcast     #57                 // class java/lang/Comparable
      99: invokestatic  #63                 // Method kotlin/comparisons/ComparisonsKt.compareValues:(Ljava/lang/Comparable;Ljava/lang/Comparable;)I
     102: ireturn
}


package marathons.atcoder.ahc21_toyota2023_pyramidSorting

import kotlin.random.Random

private fun solve(f: List<IntArray>) {
	val answers = mutableListOf<List<String>>()
	for (mode in 0 until 5 + 12) {
		answers.add(solveGreedy(f.map { it.clone() }, mode))
	}
	val ans = answers.minBy { it.size }
	println("" + ans.size + "\n" + ans.joinToString("\n"))
	System.err.println(answers.map { it.size })
}

private fun solveGreedy(f: List<IntArray>, mode: Int): List<String> {
	val n = f.size
	val ans = mutableListOf<String>()
	fun makeMove(y: Int, x: Int, d: Int) {
		val yy = y + DY[d]; val xx = x + DX[d]
		ans.add("$y $x $yy $xx")
		val t = f[y][x]; f[y][x] = f[yy][xx]; f[yy][xx] = t
	}
	val penaltyLarge = when (mode % 4) {
		0 -> 10
		1 -> 100
		2 -> 10_000
		else -> 0
	}
	val penaltyRandom = when (mode / 4 % 3) {
		0 -> 50
		1 -> 500
		else -> 0
	}
	val random = Random(mode)
	val dp = List(n) { IntArray(it + 1) }
	val dpHow = List(n) { IntArray(it + 1) }
	while (true) {
		var maxScore = Int.MIN_VALUE
		var bestMove: Triple<Int, Int, Int>? = null
		for (y in 0 until n) for (x in 0..y) for (d in 1..2) {
			val yy = y + DY[d]; val xx = x + DX[d]
			if (yy < 0 || yy >= n || xx < 0 || xx > yy) continue
			val v = f[y][x]
			val vv = f[yy][xx]
			val diff = v - vv
			if (diff < 0) continue
			val score = when (mode) {
				0 -> diff
				1 -> v
				2 -> vv
				3 -> -v
				else -> -vv
			} * 1000 + diff
			if (score > maxScore) {
				maxScore = score
				bestMove = Triple(y, x, d)
			}
		}
		if (maxScore == Int.MIN_VALUE) break
		val (yBest, xBest, dBest) = bestMove!!
		if (mode < 5) {
			makeMove(yBest, xBest, dBest)
			continue
		}
		val y0 = yBest + DY[dBest]
		val x0 = xBest + DX[dBest]
		dp[y0].fill(-1)
		dp[y0][x0] = 0
		for (y in y0 - 1 downTo 0) {
			var x1 = -1
			for (x in 0..y) {
				dp[y][x] = -1
				if (f[y][x] < f[y0][x0]) continue
				var scoreHere = f[y][x]
				if (penaltyLarge > 0) {
					for (d in 0..5) {
						val yy = y + DY[d]; val xx = x + DX[d]
						if (yy < 0 || yy >= n || xx < 0 || xx > yy) continue
						if (f[yy][xx] < f[y][x]) scoreHere += penaltyLarge
					}
				}
				if (penaltyRandom > 0) {
					scoreHere += random.nextInt(penaltyRandom)
				}
				for (d in 1..2) {
					val yy = y + DY[d]; val xx = x + DX[d]
					if (dp[yy][xx] == -1) continue
					val new = dp[yy][xx] + scoreHere
					if (new > dp[y][x]) {
						dp[y][x] = new
						dpHow[y][x] = d
					}
				}
				if (dp[y][x] == -1) continue
				var found = true
				for (d in 4..5) {
					val yy = y + DY[d]; val xx = x + DX[d]
					if (yy >= 0 && xx in 0..yy && f[yy][xx] > f[y0][x0]) found = false
				}
				if (found) {
					if (x1 == -1 || dp[y][x] > dp[y][x1]) x1 = x
				}
			}
			if (x1 != -1) {
				fun moveTo(yDest: Int, xDest: Int) {
					if (yDest == y0) return
					val d = dpHow[yDest][xDest]
					moveTo(yDest + DY[d], xDest + DX[d])
					makeMove(yDest, xDest, d)
				}
				moveTo(y, x1)
				break
			}
		}
	}
	return ans
}

private val DY = intArrayOf(0, 1, 1, 0, -1, -1)
private val DX = intArrayOf(1, 0, 1, -1, 0, -1)

private fun solve(n: Int = 30) = solve(List(n) { readInts().toIntArray() })
fun main() = solve()

private fun readLn() = readLine()!!
private fun readStrings() = readLn().split(" ")
private fun readInts() = readStrings().map { it.toInt() }

Compiled from "pyramidSorting.kt"
public final class marathons.atcoder.ahc21_toyota2023_pyramidSorting.PyramidSortingKt {
  private static final int[] DY;

  private static final int[] DX;

  private static final void solve(java.util.List<int[]>);
    Code:
       0: new           #9                  // class java/util/ArrayList
       3: dup
       4: invokespecial #13                 // Method java/util/ArrayList."<init>":()V
       7: checkcast     #15                 // class java/util/List
      10: astore_1
      11: iconst_0
      12: istore_2
      13: iload_2
      14: bipush        17
      16: if_icmpge     141
      19: aload_1
      20: aload_0
      21: checkcast     #17                 // class java/lang/Iterable
      24: astore_3
      25: astore        12
      27: iconst_0
      28: istore        4
      30: aload_3
      31: astore        5
      33: new           #9                  // class java/util/ArrayList
      36: dup
      37: aload_3
      38: bipush        10
      40: invokestatic  #23                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      43: invokespecial #26                 // Method java/util/ArrayList."<init>":(I)V
      46: checkcast     #28                 // class java/util/Collection
      49: astore        6
      51: iconst_0
      52: istore        7
      54: aload         5
      56: invokeinterface #32,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      61: astore        8
      63: aload         8
      65: invokeinterface #38,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      70: ifeq          116
      73: aload         8
      75: invokeinterface #42,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      80: astore        9
      82: aload         6
      84: aload         9
      86: checkcast     #44                 // class "[I"
      89: astore        10
      91: astore        13
      93: iconst_0
      94: istore        11
      96: aload         10
      98: invokevirtual #47                 // Method java/lang/Object.clone:()Ljava/lang/Object;
     101: checkcast     #44                 // class "[I"
     104: aload         13
     106: swap
     107: invokeinterface #51,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     112: pop
     113: goto          63
     116: aload         6
     118: checkcast     #15                 // class java/util/List
     121: nop
     122: aload         12
     124: swap
     125: iload_2
     126: invokestatic  #55                 // Method solveGreedy:(Ljava/util/List;I)Ljava/util/List;
     129: invokeinterface #56,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
     134: pop
     135: iinc          2, 1
     138: goto          13
     141: aload_1
     142: checkcast     #17                 // class java/lang/Iterable
     145: astore_3
     146: iconst_0
     147: istore        4
     149: aload_3
     150: invokeinterface #32,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     155: astore        5
     157: aload         5
     159: invokeinterface #38,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     164: ifne          175
     167: new           #58                 // class java/util/NoSuchElementException
     170: dup
     171: invokespecial #59                 // Method java/util/NoSuchElementException."<init>":()V
     174: athrow
     175: aload         5
     177: invokeinterface #42,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     182: astore        6
     184: aload         5
     186: invokeinterface #38,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     191: ifne          199
     194: aload         6
     196: goto          273
     199: aload         6
     201: checkcast     #15                 // class java/util/List
     204: astore        7
     206: iconst_0
     207: istore        8
     209: aload         7
     211: invokeinterface #63,  1           // InterfaceMethod java/util/List.size:()I
     216: istore        7
     218: aload         5
     220: invokeinterface #42,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     225: astore        8
     227: aload         8
     229: checkcast     #15                 // class java/util/List
     232: astore        9
     234: iconst_0
     235: istore        10
     237: aload         9
     239: invokeinterface #63,  1           // InterfaceMethod java/util/List.size:()I
     244: istore        9
     246: iload         7
     248: iload         9
     250: if_icmple     261
     253: aload         8
     255: astore        6
     257: iload         9
     259: istore        7
     261: aload         5
     263: invokeinterface #38,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     268: ifne          218
     271: aload         6
     273: checkcast     #15                 // class java/util/List
     276: astore_2
     277: new           #65                 // class java/lang/StringBuilder
     280: dup
     281: invokespecial #66                 // Method java/lang/StringBuilder."<init>":()V
     284: ldc           #68                 // String
     286: invokevirtual #72                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     289: aload_2
     290: invokeinterface #63,  1           // InterfaceMethod java/util/List.size:()I
     295: invokevirtual #75                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
     298: bipush        10
     300: invokevirtual #78                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
     303: aload_2
     304: checkcast     #17                 // class java/lang/Iterable
     307: ldc           #80                 // String \n
     309: checkcast     #82                 // class java/lang/CharSequence
     312: aconst_null
     313: aconst_null
     314: iconst_0
     315: aconst_null
     316: aconst_null
     317: bipush        62
     319: aconst_null
     320: invokestatic  #86                 // Method kotlin/collections/CollectionsKt.joinToString$default:(Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/String;
     323: invokevirtual #72                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     326: invokevirtual #90                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
     329: getstatic     #96                 // Field java/lang/System.out:Ljava/io/PrintStream;
     332: swap
     333: invokevirtual #102                // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     336: getstatic     #105                // Field java/lang/System.err:Ljava/io/PrintStream;
     339: aload_1
     340: checkcast     #17                 // class java/lang/Iterable
     343: astore_3
     344: astore        12
     346: iconst_0
     347: istore        4
     349: aload_3
     350: astore        5
     352: new           #9                  // class java/util/ArrayList
     355: dup
     356: aload_3
     357: bipush        10
     359: invokestatic  #23                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     362: invokespecial #26                 // Method java/util/ArrayList."<init>":(I)V
     365: checkcast     #28                 // class java/util/Collection
     368: astore        6
     370: iconst_0
     371: istore        7
     373: aload         5
     375: invokeinterface #32,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     380: astore        8
     382: aload         8
     384: invokeinterface #38,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     389: ifeq          437
     392: aload         8
     394: invokeinterface #42,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     399: astore        9
     401: aload         6
     403: aload         9
     405: checkcast     #15                 // class java/util/List
     408: astore        10
     410: astore        13
     412: iconst_0
     413: istore        11
     415: aload         10
     417: invokeinterface #63,  1           // InterfaceMethod java/util/List.size:()I
     422: invokestatic  #111                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     425: aload         13
     427: swap
     428: invokeinterface #51,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     433: pop
     434: goto          382
     437: aload         6
     439: checkcast     #15                 // class java/util/List
     442: nop
     443: aload         12
     445: swap
     446: invokevirtual #102                // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     449: return

  private static final java.util.List<java.lang.String> solveGreedy(java.util.List<int[]>, int);
    Code:
       0: aload_0
       1: invokeinterface #63,  1           // InterfaceMethod java/util/List.size:()I
       6: istore_2
       7: new           #9                  // class java/util/ArrayList
      10: dup
      11: invokespecial #13                 // Method java/util/ArrayList."<init>":()V
      14: checkcast     #15                 // class java/util/List
      17: astore_3
      18: iload_1
      19: iconst_4
      20: irem
      21: tableswitch   { // 0 to 2
                     0: 48
                     1: 53
                     2: 58
               default: 64
          }
      48: bipush        10
      50: goto          65
      53: bipush        100
      55: goto          65
      58: sipush        10000
      61: goto          65
      64: iconst_0
      65: istore        4
      67: iload_1
      68: iconst_4
      69: idiv
      70: iconst_3
      71: irem
      72: tableswitch   { // 0 to 1
                     0: 96
                     1: 101
               default: 107
          }
      96: bipush        50
      98: goto          108
     101: sipush        500
     104: goto          108
     107: iconst_0
     108: istore        5
     110: iload_1
     111: invokestatic  #145                // Method kotlin/random/RandomKt.Random:(I)Lkotlin/random/Random;
     114: astore        6
     116: new           #9                  // class java/util/ArrayList
     119: dup
     120: iload_2
     121: invokespecial #26                 // Method java/util/ArrayList."<init>":(I)V
     124: astore        8
     126: iconst_0
     127: istore        9
     129: iload         9
     131: iload_2
     132: if_icmpge     169
     135: iload         9
     137: istore        10
     139: aload         8
     141: iload         10
     143: istore        11
     145: astore        25
     147: iconst_0
     148: istore        12
     150: iload         11
     152: iconst_1
     153: iadd
     154: newarray       int
     156: aload         25
     158: swap
     159: invokevirtual #146                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     162: pop
     163: iinc          9, 1
     166: goto          129
     169: aload         8
     171: checkcast     #15                 // class java/util/List
     174: astore        7
     176: new           #9                  // class java/util/ArrayList
     179: dup
     180: iload_2
     181: invokespecial #26                 // Method java/util/ArrayList."<init>":(I)V
     184: astore        9
     186: iconst_0
     187: istore        10
     189: iload         10
     191: iload_2
     192: if_icmpge     229
     195: iload         10
     197: istore        11
     199: aload         9
     201: iload         11
     203: istore        12
     205: astore        25
     207: iconst_0
     208: istore        13
     210: iload         12
     212: iconst_1
     213: iadd
     214: newarray       int
     216: aload         25
     218: swap
     219: invokevirtual #146                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     222: pop
     223: iinc          10, 1
     226: goto          189
     229: aload         9
     231: checkcast     #15                 // class java/util/List
     234: astore        8
     236: nop
     237: ldc           #147                // int -2147483648
     239: istore        9
     241: aconst_null
     242: astore        10
     244: iconst_0
     245: istore        11
     247: iload         11
     249: iload_2
     250: if_icmpge     489
     253: iconst_0
     254: istore        12
     256: iload         12
     258: iload         11
     260: if_icmpgt     483
     263: iconst_1
     264: istore        13
     266: iload         13
     268: iconst_3
     269: if_icmpge     470
     272: iload         11
     274: getstatic     #150                // Field DY:[I
     277: iload         13
     279: iaload
     280: iadd
     281: istore        14
     283: iload         12
     285: getstatic     #153                // Field DX:[I
     288: iload         13
     290: iaload
     291: iadd
     292: istore        15
     294: iload         14
     296: iflt          464
     299: iload         14
     301: iload_2
     302: if_icmpge     464
     305: iload         15
     307: iflt          464
     310: iload         15
     312: iload         14
     314: if_icmple     320
     317: goto          464
     320: aload_0
     321: iload         11
     323: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     328: checkcast     #44                 // class "[I"
     331: iload         12
     333: iaload
     334: istore        16
     336: aload_0
     337: iload         14
     339: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     344: checkcast     #44                 // class "[I"
     347: iload         15
     349: iaload
     350: istore        17
     352: iload         16
     354: iload         17
     356: isub
     357: istore        18
     359: iload         18
     361: iflt          464
     364: iload_1
     365: tableswitch   { // 0 to 3
                     0: 396
                     1: 401
                     2: 406
                     3: 411
               default: 417
          }
     396: iload         18
     398: goto          420
     401: iload         16
     403: goto          420
     406: iload         17
     408: goto          420
     411: iload         16
     413: ineg
     414: goto          420
     417: iload         17
     419: ineg
     420: sipush        1000
     423: imul
     424: iload         18
     426: iadd
     427: istore        19
     429: iload         19
     431: iload         9
     433: if_icmple     464
     436: iload         19
     438: istore        9
     440: new           #159                // class kotlin/Triple
     443: dup
     444: iload         11
     446: invokestatic  #111                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     449: iload         12
     451: invokestatic  #111                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     454: iload         13
     456: invokestatic  #111                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     459: invokespecial #162                // Method kotlin/Triple."<init>":(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
     462: astore        10
     464: iinc          13, 1
     467: goto          266
     470: iload         12
     472: iload         11
     474: if_icmpeq     483
     477: iinc          12, 1
     480: goto          263
     483: iinc          11, 1
     486: goto          247
     489: iload         9
     491: ldc           #147                // int -2147483648
     493: if_icmpeq     1176
     496: aload         10
     498: dup
     499: invokestatic  #167                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     502: astore        11
     504: aload         11
     506: invokevirtual #170                // Method kotlin/Triple.component1:()Ljava/lang/Object;
     509: checkcast     #172                // class java/lang/Number
     512: invokevirtual #175                // Method java/lang/Number.intValue:()I
     515: istore        12
     517: aload         11
     519: invokevirtual #178                // Method kotlin/Triple.component2:()Ljava/lang/Object;
     522: checkcast     #172                // class java/lang/Number
     525: invokevirtual #175                // Method java/lang/Number.intValue:()I
     528: istore        13
     530: aload         11
     532: invokevirtual #181                // Method kotlin/Triple.component3:()Ljava/lang/Object;
     535: checkcast     #172                // class java/lang/Number
     538: invokevirtual #175                // Method java/lang/Number.intValue:()I
     541: istore        14
     543: iload_1
     544: iconst_5
     545: if_icmpge     562
     548: aload_3
     549: aload_0
     550: iload         12
     552: iload         13
     554: iload         14
     556: invokestatic  #185                // Method solveGreedy$makeMove:(Ljava/util/List;Ljava/util/List;III)V
     559: goto          236
     562: iload         12
     564: getstatic     #150                // Field DY:[I
     567: iload         14
     569: iaload
     570: iadd
     571: istore        15
     573: iload         13
     575: getstatic     #153                // Field DX:[I
     578: iload         14
     580: iaload
     581: iadd
     582: istore        16
     584: aload         7
     586: iload         15
     588: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     593: checkcast     #44                 // class "[I"
     596: iconst_m1
     597: iconst_0
     598: iconst_0
     599: bipush        6
     601: aconst_null
     602: invokestatic  #191                // Method kotlin/collections/ArraysKt.fill$default:([IIIIILjava/lang/Object;)V
     605: aload         7
     607: iload         15
     609: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     614: checkcast     #44                 // class "[I"
     617: iload         16
     619: iconst_0
     620: iastore
     621: iload         15
     623: iconst_1
     624: isub
     625: istore        17
     627: iconst_m1
     628: iload         17
     630: if_icmpge     236
     633: iconst_m1
     634: istore        18
     636: iconst_0
     637: istore        19
     639: iload         19
     641: iload         17
     643: if_icmpgt     1148
     646: aload         7
     648: iload         17
     650: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     655: checkcast     #44                 // class "[I"
     658: iload         19
     660: iconst_m1
     661: iastore
     662: aload_0
     663: iload         17
     665: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     670: checkcast     #44                 // class "[I"
     673: iload         19
     675: iaload
     676: aload_0
     677: iload         15
     679: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     684: checkcast     #44                 // class "[I"
     687: iload         16
     689: iaload
     690: if_icmplt     1135
     693: aload_0
     694: iload         17
     696: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     701: checkcast     #44                 // class "[I"
     704: iload         19
     706: iaload
     707: istore        20
     709: iload         4
     711: ifle          816
     714: iconst_0
     715: istore        21
     717: iload         21
     719: bipush        6
     721: if_icmpge     816
     724: iload         17
     726: getstatic     #150                // Field DY:[I
     729: iload         21
     731: iaload
     732: iadd
     733: istore        22
     735: iload         19
     737: getstatic     #153                // Field DX:[I
     740: iload         21
     742: iaload
     743: iadd
     744: istore        23
     746: iload         22
     748: iflt          810
     751: iload         22
     753: iload_2
     754: if_icmpge     810
     757: iload         23
     759: iflt          810
     762: iload         23
     764: iload         22
     766: if_icmple     772
     769: goto          810
     772: aload_0
     773: iload         22
     775: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     780: checkcast     #44                 // class "[I"
     783: iload         23
     785: iaload
     786: aload_0
     787: iload         17
     789: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     794: checkcast     #44                 // class "[I"
     797: iload         19
     799: iaload
     800: if_icmpge     810
     803: iload         20
     805: iload         4
     807: iadd
     808: istore        20
     810: iinc          21, 1
     813: goto          717
     816: iload         5
     818: ifle          833
     821: iload         20
     823: aload         6
     825: iload         5
     827: invokevirtual #197                // Method kotlin/random/Random.nextInt:(I)I
     830: iadd
     831: istore        20
     833: iconst_1
     834: istore        21
     836: iload         21
     838: iconst_3
     839: if_icmpge     963
     842: iload         17
     844: getstatic     #150                // Field DY:[I
     847: iload         21
     849: iaload
     850: iadd
     851: istore        22
     853: iload         19
     855: getstatic     #153                // Field DX:[I
     858: iload         21
     860: iaload
     861: iadd
     862: istore        23
     864: aload         7
     866: iload         22
     868: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     873: checkcast     #44                 // class "[I"
     876: iload         23
     878: iaload
     879: iconst_m1
     880: if_icmpeq     957
     883: aload         7
     885: iload         22
     887: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     892: checkcast     #44                 // class "[I"
     895: iload         23
     897: iaload
     898: iload         20
     900: iadd
     901: istore        24
     903: iload         24
     905: aload         7
     907: iload         17
     909: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     914: checkcast     #44                 // class "[I"
     917: iload         19
     919: iaload
     920: if_icmple     957
     923: aload         7
     925: iload         17
     927: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     932: checkcast     #44                 // class "[I"
     935: iload         19
     937: iload         24
     939: iastore
     940: aload         8
     942: iload         17
     944: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     949: checkcast     #44                 // class "[I"
     952: iload         19
     954: iload         21
     956: iastore
     957: iinc          21, 1
     960: goto          836
     963: aload         7
     965: iload         17
     967: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     972: checkcast     #44                 // class "[I"
     975: iload         19
     977: iaload
     978: iconst_m1
     979: if_icmpeq     1135
     982: iconst_1
     983: istore        21
     985: iconst_4
     986: istore        22
     988: iload         22
     990: bipush        6
     992: if_icmpge     1087
     995: iload         17
     997: getstatic     #150                // Field DY:[I
    1000: iload         22
    1002: iaload
    1003: iadd
    1004: istore        23
    1006: iload         19
    1008: getstatic     #153                // Field DX:[I
    1011: iload         22
    1013: iaload
    1014: iadd
    1015: istore        24
    1017: iload         23
    1019: iflt          1081
    1022: iconst_0
    1023: iload         24
    1025: if_icmpgt     1043
    1028: iload         24
    1030: iload         23
    1032: if_icmpgt     1039
    1035: iconst_1
    1036: goto          1044
    1039: iconst_0
    1040: goto          1044
    1043: iconst_0
    1044: ifeq          1081
    1047: aload_0
    1048: iload         23
    1050: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1055: checkcast     #44                 // class "[I"
    1058: iload         24
    1060: iaload
    1061: aload_0
    1062: iload         15
    1064: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1069: checkcast     #44                 // class "[I"
    1072: iload         16
    1074: iaload
    1075: if_icmple     1081
    1078: iconst_0
    1079: istore        21
    1081: iinc          22, 1
    1084: goto          988
    1087: iload         21
    1089: ifeq          1135
    1092: iload         18
    1094: iconst_m1
    1095: if_icmpeq     1131
    1098: aload         7
    1100: iload         17
    1102: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1107: checkcast     #44                 // class "[I"
    1110: iload         19
    1112: iaload
    1113: aload         7
    1115: iload         17
    1117: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
    1122: checkcast     #44                 // class "[I"
    1125: iload         18
    1127: iaload
    1128: if_icmple     1135
    1131: iload         19
    1133: istore        18
    1135: iload         19
    1137: iload         17
    1139: if_icmpeq     1148
    1142: iinc          19, 1
    1145: goto          646
    1148: iload         18
    1150: iconst_m1
    1151: if_icmpeq     1170
    1154: iload         15
    1156: aload         8
    1158: aload_3
    1159: aload_0
    1160: iload         17
    1162: iload         18
    1164: invokestatic  #201                // Method solveGreedy$moveTo:(ILjava/util/List;Ljava/util/List;Ljava/util/List;II)V
    1167: goto          236
    1170: iinc          17, -1
    1173: goto          627
    1176: aload_3
    1177: areturn

  private static final void solve(int);
    Code:
       0: new           #9                  // class java/util/ArrayList
       3: dup
       4: iload_0
       5: invokespecial #26                 // Method java/util/ArrayList."<init>":(I)V
       8: astore_1
       9: iconst_0
      10: istore_2
      11: iload_2
      12: iload_0
      13: if_icmpge     49
      16: iload_2
      17: istore_3
      18: aload_1
      19: iload_3
      20: istore        4
      22: astore        6
      24: iconst_0
      25: istore        5
      27: invokestatic  #236                // Method readInts:()Ljava/util/List;
      30: checkcast     #28                 // class java/util/Collection
      33: invokestatic  #240                // Method kotlin/collections/CollectionsKt.toIntArray:(Ljava/util/Collection;)[I
      36: aload         6
      38: swap
      39: invokevirtual #146                // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
      42: pop
      43: iinc          2, 1
      46: goto          11
      49: aload_1
      50: checkcast     #15                 // class java/util/List
      53: invokestatic  #242                // Method solve:(Ljava/util/List;)V
      56: return

  static void solve$default(int, int, java.lang.Object);
    Code:
       0: iload_1
       1: iconst_1
       2: iand
       3: ifeq          9
       6: bipush        30
       8: istore_0
       9: iload_0
      10: invokestatic  #247                // Method solve:(I)V
      13: return

  public static final void main();
    Code:
       0: iconst_0
       1: iconst_1
       2: aconst_null
       3: invokestatic  #250                // Method solve$default:(IILjava/lang/Object;)V
       6: return

  private static final java.lang.String readLn();
    Code:
       0: invokestatic  #256                // Method kotlin/io/ConsoleKt.readLine:()Ljava/lang/String;
       3: dup
       4: invokestatic  #167                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
       7: areturn

  private static final java.util.List<java.lang.String> readStrings();
    Code:
       0: invokestatic  #260                // Method readLn:()Ljava/lang/String;
       3: checkcast     #82                 // class java/lang/CharSequence
       6: iconst_1
       7: anewarray     #262                // class java/lang/String
      10: astore_0
      11: aload_0
      12: iconst_0
      13: ldc_w         #264                // String
      16: aastore
      17: aload_0
      18: iconst_0
      19: iconst_0
      20: bipush        6
      22: aconst_null
      23: invokestatic  #270                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      26: areturn

  private static final java.util.List<java.lang.Integer> readInts();
    Code:
       0: invokestatic  #273                // Method readStrings:()Ljava/util/List;
       3: checkcast     #17                 // class java/lang/Iterable
       6: astore_0
       7: iconst_0
       8: istore_1
       9: aload_0
      10: astore_2
      11: new           #9                  // class java/util/ArrayList
      14: dup
      15: aload_0
      16: bipush        10
      18: invokestatic  #23                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
      21: invokespecial #26                 // Method java/util/ArrayList."<init>":(I)V
      24: checkcast     #28                 // class java/util/Collection
      27: astore_3
      28: iconst_0
      29: istore        4
      31: aload_2
      32: invokeinterface #32,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      37: astore        5
      39: aload         5
      41: invokeinterface #38,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      46: ifeq          92
      49: aload         5
      51: invokeinterface #42,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      56: astore        6
      58: aload_3
      59: aload         6
      61: checkcast     #262                // class java/lang/String
      64: astore        7
      66: astore        9
      68: iconst_0
      69: istore        8
      71: aload         7
      73: invokestatic  #277                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
      76: nop
      77: invokestatic  #111                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      80: aload         9
      82: swap
      83: invokeinterface #51,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
      88: pop
      89: goto          39
      92: aload_3
      93: checkcast     #15                 // class java/util/List
      96: nop
      97: areturn

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

  private static final void solveGreedy$makeMove(java.util.List<java.lang.String>, java.util.List<int[]>, int, int, int);
    Code:
       0: iload_2
       1: getstatic     #150                // Field DY:[I
       4: iload         4
       6: iaload
       7: iadd
       8: istore        5
      10: iload_3
      11: getstatic     #153                // Field DX:[I
      14: iload         4
      16: iaload
      17: iadd
      18: istore        6
      20: aload_0
      21: new           #65                 // class java/lang/StringBuilder
      24: dup
      25: invokespecial #66                 // Method java/lang/StringBuilder."<init>":()V
      28: iload_2
      29: invokevirtual #75                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      32: bipush        32
      34: invokevirtual #78                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      37: iload_3
      38: invokevirtual #75                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      41: bipush        32
      43: invokevirtual #78                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      46: iload         5
      48: invokevirtual #75                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      51: bipush        32
      53: invokevirtual #78                 // Method java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
      56: iload         6
      58: invokevirtual #75                 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
      61: invokevirtual #90                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
      64: invokeinterface #56,  2           // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
      69: pop
      70: aload_1
      71: iload_2
      72: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      77: checkcast     #44                 // class "[I"
      80: iload_3
      81: iaload
      82: istore        7
      84: aload_1
      85: iload_2
      86: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      91: checkcast     #44                 // class "[I"
      94: iload_3
      95: aload_1
      96: iload         5
      98: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     103: checkcast     #44                 // class "[I"
     106: iload         6
     108: iaload
     109: iastore
     110: aload_1
     111: iload         5
     113: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     118: checkcast     #44                 // class "[I"
     121: iload         6
     123: iload         7
     125: iastore
     126: return

  private static final void solveGreedy$moveTo(int, java.util.List<int[]>, java.util.List<java.lang.String>, java.util.List<int[]>, int, int);
    Code:
       0: iload         4
       2: iload_0
       3: if_icmpne     7
       6: return
       7: aload_1
       8: iload         4
      10: invokeinterface #157,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      15: checkcast     #44                 // class "[I"
      18: iload         5
      20: iaload
      21: istore        6
      23: iload_0
      24: aload_1
      25: aload_2
      26: aload_3
      27: iload         4
      29: getstatic     #150                // Field DY:[I
      32: iload         6
      34: iaload
      35: iadd
      36: iload         5
      38: getstatic     #153                // Field DX:[I
      41: iload         6
      43: iaload
      44: iadd
      45: invokestatic  #201                // Method solveGreedy$moveTo:(ILjava/util/List;Ljava/util/List;Ljava/util/List;II)V
      48: aload_2
      49: aload_3
      50: iload         4
      52: iload         5
      54: iload         6
      56: invokestatic  #185                // Method solveGreedy$makeMove:(Ljava/util/List;Ljava/util/List;III)V
      59: return

  static {};
    Code:
       0: bipush        6
       2: newarray       int
       4: astore_0
       5: aload_0
       6: iconst_0
       7: iconst_0
       8: iastore
       9: aload_0
      10: iconst_1
      11: iconst_1
      12: iastore
      13: aload_0
      14: iconst_2
      15: iconst_1
      16: iastore
      17: aload_0
      18: iconst_3
      19: iconst_0
      20: iastore
      21: aload_0
      22: iconst_4
      23: iconst_m1
      24: iastore
      25: aload_0
      26: iconst_5
      27: iconst_m1
      28: iastore
      29: aload_0
      30: putstatic     #150                // Field DY:[I
      33: bipush        6
      35: newarray       int
      37: astore_0
      38: aload_0
      39: iconst_0
      40: iconst_1
      41: iastore
      42: aload_0
      43: iconst_1
      44: iconst_0
      45: iastore
      46: aload_0
      47: iconst_2
      48: iconst_1
      49: iastore
      50: aload_0
      51: iconst_3
      52: iconst_m1
      53: iastore
      54: aload_0
      55: iconst_4
      56: iconst_0
      57: iastore
      58: aload_0
      59: iconst_5
      60: iconst_m1
      61: iastore
      62: aload_0
      63: putstatic     #153                // Field DX:[I
      66: return
}