//************************************************************
/* << AUTHOR : NAVEEN BOI >> */
//************************************************************


//*********
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <queue>
#include <ctime>
#include <cassert>
#include <complex>
#include <string>
#include <cstring>
#include <chrono>
#include <random>
#include <bitset>
#include <iomanip>
#include <algorithm>
#include <map>
#include <set>
#include <utility>
#include <math.h>
#include <string>
//*********

#include <bits/stdc++.h>
using namespace std;
//#pragma GCC optimize ("O3")
//#pragma GCC target ("sse4")
//#pragma GCC target("avx,avx2,fma")
// #pragma GCC optimization ("unroll-loops")

//************************************************************

//#include <ext/pb_ds/assoc_container.hpp> 
//#include <ext/pb_ds/tree_policy.hpp>
//using namespace __gnu_pbds; 
// #include <boost/multiprecision/cpp_int.hpp> 
// using boost::multiprecision::cpp_int;
//typedef tree<pii, null_type, less<pii>, rb_tree_tag,tree_order_statistics_node_update> oset;

//*************************************************************


#define deb(x) cout << (#x) << " is " << (x) << endl
#define debb(x,y) cout << (#x) << " is "<<(x)<<" and "<<(#y)<< " is " << y << endl
#define debbb(x,y,z) cout << (#x) << " is "<<(x)<<" and " << (#y)<< " is " << (y) <<" and " << (#z)<< " is " << z <<  endl


#define ll long long int
#define PI acos(-1.0)
const ll LL_MAX = 1e18+5;
const int MX = INT_MAX;
const ll mod = 1000000007;
const int maxx = 2e5;
#define EPS 1e-9
#define pi 3.1415926535897932384626433832795


typedef long double ld;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<pair<int,int>> vii;
typedef vector<vi> vvi;
typedef vector<ll> vl;
typedef vector<pair<ll,ll>> vll;
typedef vector<vl> vvl;


#define ar array
#define pb push_back
#define fir first
#define sec second
#define lb lower_bound
#define ub upper_bound
#define eb emplace_back
#define mp make_pair
#define pb push_back
#define sz(a) (int)a.size()
#define lower(v,n)    lower_bound(all(v),n)-v.begin()
#define upper(v,n)    upper_bound(all(v),n)-v.begin()
#define binary(v,n)    binary_search(all(v),n)
#define bitcount(n)   __builtin_popcount(n)
#define getones(n) __builtin_popcountll(n)


#define gcd(a,b) __gcd(a,b)
#define all(x)  x.begin(),x.end()
#define trav(x,a) for(auto &x:a)
#define min3(a,b,c) min(min(a,b),c)
#define max3(a,b,c) max(max(a,b),c)
#define armin(a,n) *min_element(a,a+n)
#define armax(a,n) *max_element(a,a+n)
#define min4(a,b,c,d) min(min(a,b),min(c,d))
#define max4(a,b,c,d) max(max(a,b),max(c,d))
#define rsort(v) sort(all(v)),reverse(all(v))


#define fo(i,k,n) for(int i=(k);i<(n);i++)
#define lfo(i,k,n) for(ll i=(ll)k;i<(ll)n;i++)
#define rfo(i,k,n)  for(ll i=(n)-1;i>=(k);i--)
#define CASE(t) cout<<"Case #"<<(t)<<": ";


#define ip(x) int x;cin >> x ;
#define lp(x) ll x; cin >> x ;
#define ipp(x,y) int x,y;cin >> x >> y ;
#define lpp(x,y) ll x,y;cin >> x >> y ;
#define ippp(x,y,z) int x,y,z;cin >> x >> y >> z ;
#define lppp(x,y,z) ll x,y,z;cin >> x >> y >> z ;
#define ipppp(x,y,z,t) int x,y,z,t;cin >> x >> y >> z >> t;
#define lpppp(x,y,z,t) ll x,y,z,t;cin >> x >> y >> z >> t;
#define iarr(ar,n) int ar[n];fo(i,0,n)cin >> ar[i];
#define larr(ar,n) ll ar[n];fo(i,0,n)cin >> ar[i];
#define dset(ar,n,num) fo(i,0,n)ar[i]=(int)num;
#define ddset(ar,n,m,num) fo(i,0,n)fo(j,0,m)ar[i][j]=(int)num;
#define endll cout << endl
#define d_ar(a,n) fo(i,0,n)cout << a[i] << " ";endll;
#define dd_ar(a,n,m) fo(i,0,n){fo(j,0,m){cout<<a[i][j]<<" ";}cout << endl;}
#define st(s) string s;cin >> s ;


const int d4i[4]={-1, 0, 1, 0};
const int d4j[4]={0, 1, 0, -1};
const int d8i[8]={-1, -1, 0, 1, 1, 1, 0, -1};
const int d8j[8]={0, 1, 1, 1, 0, -1, -1, -1};


#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
#define jam int t;cin >> t;fo(i,1,t+1){cout<<"Case #"<<i<<": ";  solve();}
#define Testcases int t;cin >> t;fo(i,1,t+1) { solve();}
#define ans_test ip(t);int ans=0;while(t--){ans+=solve();}cout << ans << endl;
#define Time cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
#define endl "\n"
#define arsort(a) sort(a,a+n,rev)
bool rev(int a,int b){
    return a>=b;
}


/*
stringstream some_name(this_is_string); 
    int x = 0; 
    some_name >> x;
*/
string y="Yes",no="No";



// c>b>a

void solve(){
    ipppp(a,b,c,k);
    while(k){
        if(b<=a)b*=2,k--;
        else break;
    }
    // debbb(a,b,c);
    // deb(k);
    while(k--){
        c*=2;
    }
    if(a<b && b<c)cout << y ;
    else cout << no << endl;
    
}

int main(){
    fastio;

    // jam;
    // ans_test
    solve();    
    // Testcases;

    // Time;

    return 0;
}

Measured memory_bytes: 3596