/* Ċ --- ĠPart ĠTwo Ġ--- Ċ Ċ Now Ġthat Ġyou 've Ġisolated Ġthe Ġin ert Ġingredients , Ġyou Ġshould Ġhave Ġenough Ġinformation Ġto Ġfigure Ġout Ċ which Ġingredient Ġcontains Ġwhich Ġall er gen . Ċ Ċ In Ġthe Ġabove Ġexample : Ċ Ċ - Ġmx mx vk d Ġcontains Ġd air y . Ċ - Ġsq j hc Ġcontains Ġfish . Ċ - Ġf vj kl Ġcontains Ġso y . Ċ Ċ Arrange Ġthe Ġingredients Ġalphabet ically Ġby Ġtheir Ġall er gen Ġand Ġseparate Ġthem Ġby Ġcommas Ġto Ġproduce Ġyour Ċ canonical Ġdangerous Ġingredient Ġlist . Ġ( There Ġshould Ġnot Ġbe Ġany Ġspaces Ġin Ġyour Ġcanonical Ġdangerous Ċ ingredient Ġlist .) ĠIn Ġthe Ġabove Ġexample , Ġthis Ġwould Ġbe Ġmx mx vk d , sq j hc , fv j kl . Ċ Ċ Time Ġto Ġstock Ġyour Ġra ft Ġwith Ġsupp lies . ĠWhat Ġis Ġyour Ġcanonical Ġdangerous Ġingredient Ġlist ? Ċ */ Ċ Ċ package Ġcom . cur tis lb . ad vent of code . year 2 0 2 0 . day 2 1 . part 2 Ċ Ċ import Ġcom . cur tis lb . ad vent of code . year 2 0 2 0 . day 2 1 . food . Food List Ċ import Ġjava . nio . file . Path Ċ import Ġjava . nio . file . Paths Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġsolution Ġto Ġthe Ġpuzzle Ġfor Ġ 2 0 2 0 , Ġday Ġ 2 1 , Ġpart Ġ 2 . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput Path ĠThe Ġpath Ġto Ġthe Ġinput Ġfile Ġfor Ġthis Ġpuzzle . Ċ Ġ*/ Ċ fun Ġsolve ( input Path : ĠPath Ġ= ĠPaths . get (" .. ", Ġ" input ", Ġ" input . txt ")) : ĠString Ġ{ ĊĠĠĠ Ġval Ġfile Ġ= Ġinput Path . to File () ĊĠĠĠ Ġval Ġfood List Ġ= ĠFood List ( file . read Text ()) ĊĠĠĠ Ġval Ġsorted Entries Ġ= Ġfood List . d angerous Ingredient All erg ens . entries . to Mutable List (). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠsortBy Ġ{ Ġit . value Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġsorted Entries . join ToString ( separator Ġ= Ġ", ") Ġ{ Ġit . key Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġprintln ( solve ()) Ċ } Ċ