import java.io.InputStream; import java.io.PrintWriter; import java.lang.reflect.Array; import java.math.BigDecimal; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.PriorityQueue; import java.util.Queue; import java.util.Scanner; import java.util.Set; import java.util.Stack; import java.util.TreeMap; import java.util.TreeSet; import static java.util.Comparator.*; public class Main { public static void main(String[] args) { PrintWriter out = new PrintWriter(System.out); Solver solver = new Solver(System.in, out); solver.solve(); out.close(); } } class Solver { Scanner sc; PrintWriter out; public Solver(InputStream in, PrintWriter out) { sc = new Scanner(in); this.out = out; } // ================================================================== public void solve() { long[] A = new long[5]; for (int i = 4; i >= 0; i--) { A[i] = Long.parseLong(sc.next()); } long[] f = new long[100]; f[0] = f[1] = 1; for (int i = 2; i < 100; i++) { f[i] = f[i-1] + f[i-2]; } int ans = 0, cnt; // for (int i = 0; i < 5; i++) { for (int j = 0; j < 100; j++) { cnt = 0; if(f[j] == A[0]) { cnt++; for (int j2 = 1; j2 < 5; j2++) { if(f[j+j2] == A[j2]) cnt++; else break; } ans = Math.max(ans, cnt); // break; } } // } out.println(ans); } }