   import java.io.*;
   import java.util.*;

    public class dwite2a 
   {
       public static void main (String[] args) throws IOException 
      {
         PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("OUT2.txt")));
      
         BufferedReader br = new BufferedReader(new FileReader("DATA2.txt"));
         String line = "";
         while ((line=br.readLine())!= null) 
         {
            out.println(round(Long.parseLong(line)));
         }
         out.close();
         System.exit(0);
      }
   
       public static long round (long n) 
      {
         long a = 0;
         long b = 0;
      	
         int count = 1;
         while (fib(count)<n)
            count++;
         a = fib(count-1);
         b = fib(count);
      	
         if (n==a || n==b)
            return n;
         if (n-a >= b-n)
            return b;
         else 
            return a;			
      }	
		
		public static long fib(int n) // Dynamic
      {
         if (n<2) 
            return n;
         long[] fib = new long[n];
         fib[0] = 0;
         fib[1] = 1;
         for (int i = 2; i < n; i++)
            fib[i] = fib[i-1]+fib[i-2]; // fill array (f) with the values
         return fib[n-1]+fib[n-2];
      }
   }
