//  [typescript]
//0:実行モード
//1:開発モード
const sys_debugMode:number = 0;

function chk(in_data1 : any, in_data2? : any) : void{
	if (sys_debugMode == 0){
		return;
	}
	else if (in_data2 === undefined){
		console.log(in_data1);
	}
	else{
		console.log(in_data1 + "[" + typeof(in_data2) + "] =", in_data2);
	}
}

function prt(in_data : any) : void{
	console.log(in_data);
}

class ParamManager {

	private a_s_inputLines : string[];
	private n_maxLine : number;
	private n_nowLineCnt : number;

	constructor(){
		this.a_s_inputLines = this.inputLines();
		this.n_maxLine = this.a_s_inputLines.length;
		this.descLines();
		this.n_nowLineCnt = 1;
	}
	inputLines(){
		const fs = require('fs');

		let text;
		if(sys_debugMode == 0){
			text = fs.readFileSync("/dev/stdin", 'utf8');
		}
		else{
			text = fs.readFileSync("input.txt", 'utf8');
		}

		const line:string[] = text.toString().replace(/\r/g, "").split('\n');

		return line;
	}
	descLines(){
		chk("ParamManager.a_s_inputLines", this.a_s_inputLines);
	}
	getNextLine(in_s_type?):any{
		if (this.n_nowLineCnt > this.n_maxLine){
			chk("ParamManager.getNextLine","No Next Line!");
			return;
		}
		const s_returnLine:string = this.a_s_inputLines[this.n_nowLineCnt - 1];

		this.n_nowLineCnt++;
		
		if (in_s_type == "n"){
			return parseInt(s_returnLine);
		}
		else if (in_s_type == "a"){
			return s_returnLine.split(" ");
		}
		else if (in_s_type == "an"){
			const a_s_temp = s_returnLine.split(" ");
			const a_n_temp = a_s_temp.map(function(str){return Number(str)});
			return a_n_temp;
		}
		else{
			return s_returnLine;
		}
	}
}
const paramManager = new ParamManager();
//==================================================
//https://atcoder.jp/contests/m-solutions2020/tasks/m_solutions2020_b
//B - Magic 2

//M 君は、以下の  3  枚のカードを持っています。
//整数  A  が書かれた赤のカード
//整数  B  が書かれた緑のカード
//整数  C  が書かれた青のカード

//彼は天才的な魔術師なので、以下の操作を  K  回まで行うことができます。
//3  枚のうちいずれか  1  枚のカードを選び、書かれた整数を  2  倍する。

//操作を行った後、以下の条件が同時に満たされれば、魔術は成功です。
//緑のカードに書かれている整数は、赤のカードに書かれている整数より真に大きい。
//青のカードに書かれている整数は、緑のカードに書かれている整数より真に大きい。

//魔術を成功させることができるかどうか判定してください。
//==================================================
class Param{
	cardNumRed:number	= null;
	cardNumGreen:number	= null;
	cardNumBlue:number	= null;
	magicJikkouKaisu:number	= null;

	constructor(){
		chk("--------------------------------------------------");
		chk("パラメータ");
		//A B C
		//1 ≤ A , B , C ≤ 7
		//入力はすべて整数
		const aTemp = paramManager.getNextLine('an');
		//整数  A  が書かれた赤のカード
		this.cardNumRed	= aTemp[1-1];
		//整数  B  が書かれた緑のカード
		this.cardNumGreen = aTemp[2-1];
		//整数  C  が書かれた青のカード
		this.cardNumBlue = aTemp[3-1];

		//K
		//1 ≤ K ≤ 7
		//入力はすべて整数
		//以下の操作を  K  回まで行うことができます
		this.magicJikkouKaisu = paramManager.getNextLine("n");

		chk(this);
	}
}
const param = new Param();
//==================================================
class Kumiawase{
	no:number = null;
	aKumiawaseNum:number[] = [];
	cardNumRed:number   = param.cardNumRed;
	cardNumGreen:number = param.cardNumGreen;
	cardNumBlue:number  = param.cardNumBlue;
	bMagicSuccess:boolean = false;
}
//==================================================
class Manager{
	aKumiawase:Kumiawase[] = [];

	constructor(){
		this.main();
	}

	main():void{
		chk("--------------------------------------------------");
		chk("main");

		this.makeKumiawase();
		this.magicJikkou();

		this.resultOutput();
	}

	magicJikkou():void{
		chk("--------------------------------------------------");
		chk("magicJikkou");

		//ループ　組み合わせ配列
		for (const loopKumiawase of this.aKumiawase) {
			//chk('==================================================');
			//chk('loopKumiawase',loopKumiawase);

			//ループ　組み合わせ番号
			for (const loopKumiawaseNum of loopKumiawase.aKumiawaseNum) {
				//chk('loopKumiawaseNum',loopKumiawaseNum);

				//彼は天才的な魔術師なので、以下の操作を  K  回まで行うことができます。
				//3  枚のうちいずれか  1  枚のカードを選び、書かれた整数を  2  倍する。
				switch (loopKumiawaseNum) {
					case 1:	//red
						loopKumiawase.cardNumRed *= 2;
						break;
					case 2:	//green
						loopKumiawase.cardNumGreen *= 2;
						break;
					case 3:	//blue
						loopKumiawase.cardNumBlue *= 2;
						break;
				}
			}

			//操作を行った後、以下の条件が同時に満たされれば、魔術は成功です。
			//緑のカードに書かれている整数は、赤のカードに書かれている整数より真に大きい。
			//青のカードに書かれている整数は、緑のカードに書かれている整数より真に大きい。
			if(	loopKumiawase.cardNumGreen > loopKumiawase.cardNumRed
				&&
				loopKumiawase.cardNumBlue  > loopKumiawase.cardNumGreen
			){
				loopKumiawase.bMagicSuccess = true;
			}
			else{
				loopKumiawase.bMagicSuccess = false;
			}
		}
		chk('this.aKumiawase',this.aKumiawase);
	}

	makeKumiawase():void{
		chk("--------------------------------------------------");
		chk("makeKumiawase");

		//作成　組み合わせベース
		const aKumiawaseBase:number[][] = this.kumiawaseChoufukuAri([1,2,3], 3);
		//chk('aKumiawaseBase',aKumiawaseBase);

		//ループ　組み合わせベース
		for (const loopKumiawase of aKumiawaseBase) {
			//作成　オブジェクト　組み合わせ
			const k = new Kumiawase();
			k.no = this.aKumiawase.length + 1;
			k.aKumiawaseNum = loopKumiawase;

			//登録　オブジェクト　組み合わせ
			this.aKumiawase.push(k);
		}

		chk('this.aKumiawase',this.aKumiawase);
	}

	kumiawaseChoufukuAri(in_aBaseNum:number[], in_pickupNum:number):number[][]{
		function getCombArr(len = 2, comb = 1) {
			const num = Math.pow(len, comb),
			makeArr = (v, i) => {
				const n = i.toString(len),
				padStr = '0'.repeat(comb - n.length);
				return (padStr + n).split('');
			};
			return [...Array(num).keys()].map(makeArr);
		};
		function getComb(arr = [], comb = 1) {
			const base = getCombArr(arr.length, comb),
			convert = v => arr[v],
			makeArr = comb => comb.map(convert);
			return base.map(makeArr);
		};
		return getComb(in_aBaseNum, in_pickupNum);
	}

	  resultOutput():void{
		chk("--------------------------------------------------");
		chk("resultOutput");

		//フィルタ　組み合わせ配列　①魔術成功
		const aKumiawaseFilter:Kumiawase[] = this.aKumiawase.filter(item => item.bMagicSuccess == true);
		chk('aKumiawaseFilter',aKumiawaseFilter);

		//成功数
		const successNum:number = aKumiawaseFilter.length;
		chk('successNum',successNum);

		//魔術を成功させることができる場合は、Yes と出力してください。
		if(successNum>=1){
			prt("Yes");
		}
		//そうでない場合は、No と出力してください。
		else{
			prt("No");
		}
	}

}
const manager = new Manager();
//==================================================