#include #define REP(i,n) for(int i=0,i##_len=(n);iy) swap(x,y); int res=0; while(x>h){ x=(x+1)/2; h*=2; res++; } while(y>h){ y=(y+1)/2; h*=2; res++; } return res; } template T npow(T x, ll n){ T ans = 1; while(n != 0){ if(n&1) ans = ans*x; x = x*x; n = n >> 1; } return ans; } int ans2(ll x,ll y,ll h){ x*=1000;y*=1000; int l=0,r=40; while(l+1 tx(k+1,x),ty(m-k+1,y); REP(i,k) tx[i+1]=(tx[i]+1)/2; REP(i,m-k) ty[i+1]=(ty[i]+1)/2; int nx=k,ny=m-k; while(tx[nx]<=th||ty[ny]<=th){ if(nx>0&&2*tx[nx-1]>th){ nx--; th/=2; } else if(ny>0 && 2*ty[ny-1]>th){ ny--; th/=2; }else{ break;} } if(tx[nx]>th&&ty[ny]>th){ able = true; } } if(able) l=m; else r=m; } return l; } int main(){ ll x,y,h;cin>>x>>y>>h; assert(1<=x&&x<=1000000000); assert(1<=y&&y<=1000000000); assert(1<=h&&h<=1000); cout<