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

(->> (read)
  int
  LucasNumber
  (printf "%s\n"))