using System; using static System.Console; using System.Linq; using System.Collections.Generic; using System.Globalization; using System.Runtime.CompilerServices; using System.Runtime.Intrinsics.X86; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static string[] SList(long n) => Enumerable.Repeat(0, (int)n).Select(_ => ReadLine()).ToArray(); public static void Main() { Solve(); } static void Solve() { var c = NList; var (a, b, h) = (c[0], c[1], c[2]); var x = a * 1000.0; var y = b * 1000.0; var d = (double)h; var ans = 0; for (var i = 0; i < 21; ++i) { var mx = x / (1 << i); var md = d * (1 << i); ans = Math.Max(ans, i); // WriteLine($"1 x = {x}, y = {y}, d = {md}"); for (var j = 0; j < 21; ++j) { var my = y / (1 << j); var mmd = md * (1 << j); ans = Math.Max(ans, i + j); // WriteLine($"2 x = {mx}, y = {my}, d = {mmd}"); for (var k = 0; k < 21; ++k) { var mmx = mx / (1 << k); var mmmd = mmd * (1 << k); ans = Math.Max(ans, i + j + k); // WriteLine($"3 x = {mmx}, y = {my}, d = {mmmd}"); if (mmx <= mmmd) break; } if (my <= mmd) break; } if (mx <= md) break; } WriteLine(ans); } }