#include <iostream>
#include <bits/stdc++.h>
#include <string>
#include <stdlib.h>
#include <cmath>
#include <cstdio>
#include <algorithm>
#include <fstream>
#include <typeinfo>
#define ll long long
#define ld long double
#define vll vector<ll>
#define pll pair<ll, ll>
#define vpll vector<pll>
#define I insert
#define pb push_back
#define F first
#define S second
#define endl "\n"
#define repi(i, a, b) for (ll i = a; i < b; i++)
#define repj(j, a, b) for (ll j = a; j < b; j++)
#define vi vector<int>
#define pii pair<int, int>
#define vpii vector<pii>
#define mod 1000000007
//#define lim 100001

using namespace std;
ll factorial(ll n) { return (n == 1 || n == 0) ? 1 : n * factorial(n - 1); }
int max3(int a, int b, int c) { return max(a, max(c, b)); }
int gcd(int a, int b)
{
    if (a == 0)
    {
        return b;
    }
    else
    {
        return gcd(b % a, a);
    }
}
ll power(ll a, ll n)
{
    if (n == 1)
        return a;
    else if (n == 0)
        return 1;
    else
    {
        ll r = power(a, n / 2);
        if (n % 2 == 0)
            return r * r;
        else
            return r * a * r;
    }
}
ll nCr(ll n, ll r) { return ((factorial(n)) / (factorial(n - r) * factorial(r))); }
void dfs(vector<vector<int>> &v, vi &check, int start)
{
    check[start - 1] = 1;
    repj(j, 0, v[start - 1].size())
    {
        if (!check[v[start - 1][j] - 1])
        {
            dfs(v, check, v[start - 1][j]);
        }
    }
}
bool isPrime(int n)
{
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
    if (n % 2 == 0 || n % 3 == 0)
        return false;
    for (int i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
    return true;
}
//works under 2 till 1e12

int printDivisors(int n)
{
    // Note that this loop runs till square root
    int num = INT_MIN;
    for (int i = 1; i <= sqrt(n); i+=2)
    {
        if (n % i == 0)
        {
            // If divisors are equal, print only one
            if (n / i == i){
                num = max(num, i);
            }

                else{
                    if(i==1){
                        num = max(num, i);
                    }
                    else{
                        num = max(num, max(n / i, i));
                    }

            } // Otherwise print both
        }
    }

    return num;
}

// Initializing the roots of the array and the size of the roots

void initialize(int Arr[], int N, int Size[])
{
    for (int i = 0; i < N; i++)
    {
        Arr[i] = i;
        Size[i] = 1;
    }
}

// To find the root of any single element

int root(int Arr[], int i)
{
    while (Arr[i] != i)
    {
        i = Arr[i];
    }
    return i;
}

// To connect the roots of union elemnts

void Union(int Arr[], int A, int B, int Size[])
{
    int root_A = root(Arr, A);
    int root_B = root(Arr, B);
    if(root_A!=root_B){
        if (Size[root_B] > Size[root_A])
        {
            Arr[root_A] = root_B;
            Size[root_B] += Size[root_A];
        }
        else
        {
            Arr[root_B] = root_A;
            Size[root_A] += Size[root_B];
        }
    }
}

// To check the connectivity of two elements

bool Find(int Arr[], int A, int B)
{
    if (root(Arr, A) == root(Arr, B))
        return true;
    else
        return false;
}

int final = INT_MAX;
string s;

int calculate(int l, int r, char c){
    //cout << cnt << endl;
    if((r-l)==1){
        if(s[l]!=c){
            return 1;
        }
        else
            return 0;
    }
    ll mid = (r + l) / 2;
    ll size_arr = (r - l) / 2;
    ll cl = 0, cr = 0;
    cl = count(s.begin() + l, s.begin() + mid,c);
    cr = count(s.begin() + mid, s.begin() + r, c);
    ll count_l = size_arr - cl + calculate(mid, r, c + 1);
    ll count_r = size_arr - cr + calculate(l, mid, c + 1);
    return min(count_r, count_l);
}

bool check(string s, int pos, string mac){
    for (int i = 0; i < mac.size();i++){
        s[pos] = mac[i];
        pos++;
    }
    int times = 0;
    for (int i = 0; i <= (s.size() - mac.size()); i++)
    {
        string s2 = s.substr(i, mac.size());
        if (s2 == mac)
            times++;
    }
    if(times>1)
        return false;
    else
        return true;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    double n, d;
    cin >> n >> d;
    ll ans = 0;
    for (int i = 0; i < n; i++)
    {
        double x, y;
        cin >> x >> y;
        double lol = hypot(x, y);
        if(lol<=d)
            ans++;
    }
    cout << ans;
    return 0;
}

Measured memory_bytes: 3812