M-kun has the following three cards:

* A red card with the integer A.
* A green card with the integer B.
* A blue card with the integer C.



He is a genius magician who can do the following operation at most K times:

* Choose one of the three cards and multiply the written integer by 2.



His magic is successful if both of the following conditions are satisfied after the operations:

* The integer on the green card is strictly greater than the integer on the red card.
* The integer on the blue card is strictly greater than the integer on the green card.



Determine whether the magic can be successful.

Constraints

* 1 \leq A, B, C \leq 7
* 1 \leq K \leq 7
* All values in input are integers.

Input

Input is given from Standard Input in the following format:


A B C
K


Output

If the magic can be successful, print `Yes`; otherwise, print `No`.

Examples

Input

7 2 5
3


Output

Yes


Input

7 4 2
3


Output

No
import java.util.*;
public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		// 整数の入力
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int k = sc.nextInt();
		
		new Main().execute(a, b, c, k);
	}

	public void execute(int a, int b, int c, int k) {
		List<int[]> cardPoint = new ArrayList<>();
		int[] firstCard = {a, b, c};
		cardPoint.add(firstCard);
		for (int i = 0; i < k; i++) {
			List<int[]> nextCardPoint = new ArrayList<>();
			
			for (int[] cards : cardPoint) {
				int[] redCard = {cards[0] * 2, cards[1], cards[2]};
				int[] greenCard = {cards[0], cards[1] * 2, cards[2]};
				int[] blueCard = {cards[0], cards[1], cards[2] * 2};
				
				if (judge(redCard) || judge(greenCard) || judge(blueCard)) {
					System.out.println("Yes");
					return;
				}
				nextCardPoint.add(redCard);
				nextCardPoint.add(greenCard);
				nextCardPoint.add(blueCard);
			}
			cardPoint = nextCardPoint;
		}
		System.out.println("No");
	}
	
	private boolean judge(int[] card) {
		return card[0] < card[1] && card[1] < card[2];
	}
}


