(defn ^:dynamic LucasNumber [N]
  (case N
    0 (bigint 2)
    1 (bigint 1)
     (+ (LucasNumber (dec N)) (LucasNumber (dec (dec N))))))

(binding [LucasNumber (memoize LucasNumber)]
  (->> (read)
    int
    LucasNumber
    (printf "%s\n")))