#include <bits/stdc++.h>
using namespace std;
using Graph = vector<vector<int>>;
#define ALL(obj) obj.begin(),obj.end()
#define SORT(obj) sort(obj.begin(),obj.end())
#define pb(obj) push_back(obj)
#define rep(i,n) for(int i=0; i<n; i++)
typedef long long ll;
ll const MOD=1e9+7;
const ll INF = 9000000000000000000;
vector<bool> seen;//グラフ用の配列
long long pow(long long x, long long n) {
    long long ret = 1;
    while (n > 0) {
        if (n & 1) ret = ret * x % MOD;  // n の最下位bitが 1 ならば x^(2^i) をかける
        x = x * x % MOD;
        n >>= 1;  // n を1bit 左にずらす
    }
    return ret;
}
int ctoi(const char c){
  switch(c){
    case '0': return 0;
    case '1': return 1;
    case '2': return 2;
    case '3': return 3;
    case '4': return 4;
    case '5': return 5;
    case '6': return 6;
    case '7': return 7;
    case '8': return 8;
    case '9': return 9;
    default : return -1;
  }
}
int kakuketa(int n){
    int ans = 0;
    while(n>0){
        ans += n%10;
        n /= 10;
    }
    return ans;
}
void dfs2(int y,int x,vector<vector<bool>> &flags,Graph &G){//二次元dfs
    if(G[y][x] == 0) return;
    if(flags[y][x] == true) return;
    else{
        flags[y][x] = true;
    }
    dfs2(y+1,x,flags,G);
    dfs2(y+1,x+1,flags,G);
    dfs2(y+1,x-1,flags,G);
    dfs2(y,x+1,flags,G);
    dfs2(y,x-1,flags,G);
    dfs2(y-1,x+1,flags,G);
    dfs2(y-1,x,flags,G);
    dfs2(y-1,x-1,flags,G);
}

int main(){
    ll r,x,y;
    cin>>r>>x>>y;
    long double kyori0 = sqrt(x*x+y*y);
    ll kyori;
    if(floor(kyori0) == ceil(kyori0)){
        kyori = floor(kyori0);
        if(kyori < r){
            cout<<2<<endl;
            return 0;
        }
        if(kyori%r==0){
            cout<<kyori/r<<endl;
            return 0;
        }
        else{
            cout<<kyori/r+1<<endl;
            return 0;
        }
    }
    else{
        kyori = floor(kyori0)+1;
        if(kyori-1 < r){
            cout<<2<<endl;
            return 0;
        }
        if(kyori%r==0){
            cout<<kyori/r<<endl;
            return 0;
        }
        else{
            cout<<kyori/r+1<<endl;
            return 0;
        }
    }
}
#include <iostream>
#include <bits/stdc++.h>
#define ll long long int
#define max_value 0x3f3f3f

/*freopen("input.txt","r",stdin);
   freopen("output.txt","w",stdout);*/
using namespace std;
const int  inf=1e9+7;







void solve(){
  double r,x,y;
  cin>>r>>x>>y;
  double z=sqrt(x*x+y*y);
  if(z==r)
    cout<<"1"<<endl;
  else if(z<=2*r)
    cout<<"2"<<endl;
  else {
  int ans=ceil(z/r);
  cout<<ans<<endl;}


}




int main(){
 int t;
t=1;
 while(t--){
 solve();
}
}







