/**
 * @(#)RoundToFib.java
 *
 *
 * @author 
 * @version 1.00 2009/12/16
 */


import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.PrintWriter;
import java.io.IOException;

public class RoundToFib {

	public static void main(String[] args) throws IOException {
		BufferedReader in = new BufferedReader(new FileReader("DATA2.txt"));
		PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("OUT2.txt")));
		String curLine;
		long num;
		
		long fib[] = new long[46];
		long avg[] = new long[46];
		
		int i = 0, j;
		fib[0] = 0;
		fib[1] = 1;
		
		for (i = 2; i < 46; i++) {
			fib[i] = fib[i - 1] + fib[i - 2];
		}
		
		for (i = 0; i < 45; i++) {
			avg[i] = (long) Math.ceil((fib[i] + fib[i + 1]) / 2.0);
			System.out.println(i + " " + avg[i]);
		}
		
		

		
		for(i = 0; i < 5; i++) {
			curLine = in.readLine();
			if (curLine == null) break;
			curLine = curLine.trim();
			if (curLine.equals("")) continue;
			num = Long.parseLong(curLine);
			
			find: {
				for( j = 0; j < 45; j++) {
					if (num >= avg[j] && num < avg[j + 1]) {
						out.println(fib[j + 1]);
						break find;
					}
				}
				out.println(fib[45]);
			}
			
		}
		
		in.close();
		out.close();		
	}
}
