(defconstant +mod+ 1000000007) (defun main (&rest argv) (declare (ignorable argv)) (let* ((n (read)) (dp (make-array (list n 3) :initial-element 0))) (setf (aref dp 0 0) 1) (loop for i from 1 below n do (setf (aref dp i 0) (aref dp (1- i) 2)) (setf (aref dp i 1) (aref dp (1- i) 0)) (setf (aref dp i 2) (mod (+ (aref dp (1- i) 0) (aref dp (1- i) 1)) +mod+))) (format t "~a~%" (mod (+ (aref dp (1- n) 0) (aref dp (1- n) 1) (aref dp (1- n) 2)) +mod+)))) (main)