input := fs_read("/tmp/pin.txt").assume_no_enum().bytes_to_string().assume_no_enum() fn prio(s string) { switch! "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".index_of(s) { [] [] 0 int n n + 1 } } sum := 0 for group input.regex(".*\\n.*\\n.*\\n?").assume_no_enum() { rucksacks := group.regex(".*").assume_no_enum() a := rucksacks.get(0).assume1() b := rucksacks.get(1).assume1() c := rucksacks.get(2).assume1() println(a) println(b) println(c) println("---") badge_type := for ch "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".regex(".").assume_no_enum() { if a.contains(ch) && b.contains(ch) && c.contains(ch) { ch } } switch! badge_type { string s &sum = sum + prio(s) [] [] [] } } println("sum: " + sum.to_string())