fileprivate struct Scanner {
    private var elements = [String]()
    private var index = 0
    
    mutating func peek() -> String {
        while elements.count == index {
            elements = readLine()!.split(separator: " ").map(String.init)
            index = 0
        }
        return elements[index]
    }
    
    mutating func next() -> String {
        let value = peek()
        index += 1
        return value
    }
    
    mutating func nextInt() -> Int {
        return Int(next())!
    }
    
    mutating func nextDouble() -> Double {
        return Double(next())!
    }
}

func main() {
    var scanner = Scanner()
    let A = scanner.nextInt()
    var B = scanner.nextInt()
    var C = scanner.nextInt()
    let K = scanner.nextInt()
    
    var need = 0
    
    while A >= B {
        B *= 2
        need += 1
    }
    while B >= C {
        C *= 2
        need += 1
    }
    
    if need <= K {
        print("Yes")
    } else {
        print("No")
    }
}

main()
