def recprism_area(l, w, h): return 2*l*w + 2*w*h + 2*h*l def smallest_side(l, w, h): return min(l*w, w*h, h*l) def ribbon_wrap(l, w, h): di = [l, w, h] stmin = min(di) di.remove(stmin) ndmin = min(di) return 2*stmin + 2*ndmin def ribbon_bow(l, w, h): return l*w*h order = 0 with open("input") as f: for line in [l.strip() for l in f.readlines()]: di = list(map(int, line.split("x"))) order += ribbon_wrap(*di) + ribbon_bow(*di) print(order)