using System.Collections.Generic;
private static int _calls = 0;
private static Dictionary<int, int> _cache = new Dictionary<int, int>();
public static void Main()
var input = Console.ReadLine();
var zahl = int.Parse(input);
Console.WriteLine(Fibu(zahl));
Console.WriteLine(_calls);
private static int Fibu(int zahl)
if (!_cache.TryGetValue(zahl, out val))
Console.WriteLine("Fibu(" + zahl + ")");
val = Fibu(zahl - 1) + Fibu(zahl - 2);