content: import Data.Maybe (fromMaybe)
  
  dict =
    [ ("Ohälsosamt", ["Tobak", "Droger"])
    , ("Land", ["Turkiet", "Mongoliet"])
    , ("Asien", ["Kina", "Europa"])
    , ("Ryssland", ["Europa", "Asien"])
    , ("Turkiet", ["Europa", "Asien"])
    , ("Bajkalsjön", ["Atlanten", "Ryssland"])
    , ("Mord", ["Amerika", "Brott"])
    , ("Syrien", ["Turkiet", "Lennart"])
    , ("StillaHavet", ["Kina", "Syrien"])
    , ("Putin", ["Lennart", "Ryssland"])
    , ("Kanada", ["Amerika", "Kallt"])
    , ("Amerika", ["StillaHavet", "Atlanten"])
    , ("England", ["Ang", "Land"])
    , ("Tobak", ["Lennart", "Amerika"])
    , ("Aktivitet", ["Amerika", "Falskt"])
    , ("Tobias", ["Lennart", "Putintobaksimulator"])
    , ("JordensUndergång", ["Atombomb", "Djävulen"])
    , ("Pirater", ["StillaHavet", "Lennart"])
    , ("Droger", ["Tobak", "Pirater"])
    , ("Oskar", ["Tobias", "Kina"])
    , ("Elever", ["Tobias", "Oskar"])
    , ("Skola", ["Europa", "Elever"])
    , ("Susanne", ["Lärare", "Matte"])
    , ("Stort", ["StillaHavet", "Amerika"])
    , ("Barn", ["Oskar", "Lennart"])
    , ("Lärare", ["Skola", "Vuxen"])
    , ("Lotta", ["Lennart", "Lärare"])
    , ("Anders", ["Oskar", "Lärare"])
    , ("LennartsFramtid", ["Ohälsosamt", "Amerika"])
    , ("Europa", ["Kina", "Atlanten"])
    , ("Maya", ["Kanada", "Räv"])
    , ("Bra", ["Putintobaksimulator", "Skola"])
    , ("Krona", ["Spanien", "Corona"])
    , ("LennartsBraFramtid", ["LennartsFramtid", "Bra"])
    , ("Kaffe", ["Droger", "Lärare"])
    , ("Räv", ["Kallt", "Djur"])
    , ("EnEvigVäntan", ["Anders", "Kaffe"])
    , ("Brutal", ["Mördare", "Galen"])
    , ("Sant", ["LennartsBraFramtid", "EnEvigVäntan"])
    , ("Atombomb", ["Brutal", "Radioaktivitet"])
    , ("Falskt", ["LennartsBraFramtid", "Sant"])
    , ("Brott", ["Lennart", "Aktivitet"])
    , ("Mördare", ["Lennart", "Mord"])
    , ("Religion", ["Anders", "JordensUndergång"])
    , ("Mongoliet", ["Kina", "Ryssland"])
    , ("Grekland", ["Mongoliet", "Syrien"])
    , ("GUD", ["BigBang", "Religion"])
    , ("Matte", ["Skola", "Grekland"])
    , ("Teknologi", ["Aktivitet", "Susanne"])
    , ("Radio", ["Lotta", "Teknologi"])
    , ("Radioaktivitet", ["Radio", "Aktivitet"])
    , ("Kallt", ["Mongoliet", "Ryssland"])
    , ("Slav", ["Tobias", "Lennart"])
    , ("Djur", ["Vuxen", "Slav"])
    , ("Kvinna", ["Vuxen", "Maya"])
    , ("Spanien", ["Grekland", "Europa"])
    , ("Corona", ["Ohälsosamt", "Kina"])
    , ("Drottning", ["Kvinna", "Krona"])
    , ("Ang", ["Land", "Djur"])
    , ("QueenElizabeth", ["England", "Drottning"])
    , ("Hund", ["Räv", "QueenElizabeth"])
    , ("Rabies", ["Ohälsosamt", "Hund"])
    , ("Galen", ["Hund", "Rabies"])
    , ("Helvettet", ["Land", "Brutal"])
    , ("Vuxen", ["Stort", "Barn"])
    , ("Djävulen", ["Lennart", "Helvettet"])
    , ("Lennart", ["Atlanten", "Bajkalsjön"])
    , ("BigBang", ["Stort", "Atombomb"])
    , ("Putintobaksimulator", ["Tobak", "Putin"])
    ]
  
  main = print $ length . (`filter` solution) . (==) <$> ["Kina", "Atlanten"]
    where
      solution = repeatedly (>>= go) ["GUD"]
      repeatedly = until =<< ((==) =<<)
      go = fromMaybe <$> pure <*> (`lookup` dict)
  