using System; using System.Collections.Generic; using System.Text; public class Program { public void Proc(){ Reader.IsDebug = false; int max = int.Parse(Reader.ReadLine()); long ans = GetAns(max); Console.WriteLine(ans.ToString("##########################0")); } private Dictionary dic = new Dictionary(); private long GetAns(int remain) { if(remain == 0) { return 1; } if(remain < 0) { return 0; } if(dic.ContainsKey(remain)) { return dic[remain]; } long ans = this.GetAns(remain - 1); ans += this.GetAns(remain - 2); dic.Add(remain, ans); return ans; } public static void Main(string[] args) { Program prg = new Program(); prg.Proc(); } } class Reader { public static bool IsDebug = true; private static System.IO.StringReader sr; public static string ReadLine() { if(IsDebug) { if(sr == null) { sr = new System.IO.StringReader(initStr.Trim()); } return sr.ReadLine(); } else { return Console.ReadLine(); } } public static int[] GetInt(char delimiter = ' ') { string[] inpt = ReadLine().Split(delimiter); int[] ret = new int[inpt.Length]; for(int i=0; i