//0:実行モード
//1:開発モード
//2:最終テストモード
const sys_debugMode : number = 0;

function chk(in_data1 : any, in_data2? : any) : void{
	if (sys_debugMode == 0 || sys_debugMode == 2){
		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();
//==================================================
//B - Distance
//2次元平面上にN個の点があります。
//i個目の点の座標は( X i , Y i )  です。
//これらのうち、原点からの距離が  D  以下であるような点は何個ありますか？
//==================================================
class Param{
	tenNum:number = null;
	kyoriFromGenten:number = null;

	constructor(){
		chk("--------------------------------------------------");
		chk("パラメータ");
		const aTemp = paramManager.getNextLine('an');

		//N個の点
		//1 ≤ N ≤ 2 × 10^5
		this.tenNum = aTemp[1-1];

		//原点からの距離が D以下
		//0 ≤ D ≤ 2 × 10^5
		this.kyoriFromGenten = aTemp[2-1];

		chk(this);
	}
}
const param = new Param();
//==================================================
class Ten{
	no:number = null;
	zahyouX:number = null;
	zahyouY:number = null;
	kyoriFromGenten:number = null;
	bGoukaku:boolean = false;
}
//==================================================
class Manager{
	aTen:Ten[] = [];

	constructor(){
		this.main();
	}

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

		this.makeTen();


		this.resultOutput();
	}

	makeTen():void{
		chk("--------------------------------------------------");
		chk("makeTen");
		//i  個目の点の座標は  ( X i , Y i )
		//| X i | , | Y i | ≤ 2 × 10^5

		//入力行ループ
		for(let loopTenNo = 1 ; loopTenNo <= param.tenNum ; loopTenNo++){
			//読み込み
			const aTemp = paramManager.getNextLine('an');

			//////////////////////////////////////////////////
			//点オブジェクト
			const t = new Ten();
			t.no = this.aTen.length + 1;
			t.zahyouX = aTemp[1-1];
			t.zahyouY = aTemp[2-1];
			//////////////////////////////////////////////////
			//距離
			//座標  ( p , q )  にある点と原点の距離は　ルート(p^2 + q^2)
			t.kyoriFromGenten = Math.sqrt(Math.pow(t.zahyouX, 2) + Math.pow(t.zahyouY, 2));
			//////////////////////////////////////////////////
			//合格フラグ
			//これらのうち、原点からの距離が  D  以下であるような点は何個ありますか？
			if(t.kyoriFromGenten <= param.kyoriFromGenten){
				t.bGoukaku = true;
			}
			else{
				t.bGoukaku = false;
			}
			//////////////////////////////////////////////////
			//登録
			this.aTen.push(t);
		}

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

	resultOutput():void{
		chk("--------------------------------------------------");
		chk("resultOutput");
		//これらのうち、原点からの距離が  D  以下であるような点は何個ありますか？

		const aTenFilterGoukaku:Ten[] = this.aTen.filter(item => item.bGoukaku == true);
		chk('aTenFilterGoukaku',aTenFilterGoukaku);

		const resultNum:number = aTenFilterGoukaku.length;
		prt(resultNum);
	}

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

Measured memory_bytes: 100680