import std/[os, math, sequtils, setutils, strutils, sugar, tables] const letters = toSeq('a'..'z').concat(toSeq('A'..'Z')) const priorities = zip(letters, toSeq(1..52)).toTable proc commonType(sacks: varargs[string]): char = let sets = sacks.map(x => x.toSet) let intersection = sets.foldl(a * b) intersection.toSeq[0] proc compartments(sack: string): seq[string] = let sackMid = sack.len div 2 comp1 = sack[0..