#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <string>
#include <math.h>
#include <iomanip>
#include <limits>
#include <list>
#include <queue>
#include <tuple>
#include <map>
#include <stack>
#include <set>
#include <bitset>
#include <functional>
#include <cassert>

using namespace std;
 
int main() {
  long long int R;
  long long int X;
  long long int Y;
  cin >> R >> X >> Y;
  double Z;
  Z = sqrt(X*X + Y*Y);
  if(Z==R){
    cout << 1 << endl;
  }
  else if(Z<2*R){
    cout << 2 << endl;
  }
  else{
    cout << ceil(Z/R) << endl;
  }
}

// Problem: C - Compass Walking
// Contest: AtCoder - AtCoder Beginner Contest 198
// URL: https://atcoder.jp/contests/abc198/tasks/abc198_c
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
// Powered by CP Editor (https://github.com/cpeditor/cpeditor)

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define ff first
#define ss second
#define VI vector <int>
#define VVI vector <VI>
#define pii pair<int, int>
#define ppi pair<pii, int>
#define mii map<int, int>
#define mci map<char, int>
#define miv map<int, VI>
#define mis map<int, set<int>>
#define setbits(n) __builtin_popcount(n)
#define all(v) (v).begin(), (v).end()
#define yes cout<<"Yes"<<endl
#define no cout<<"No"<<endl
#define endl "\n"
#define show2(a, b) cout<<a<<' '<<b<<endl
#define show3(a, b, c) cout<<a<<' '<<b<<' '<<c<<endl
#define show(arr) for (auto i:arr) cout<<i<<' '; 

const long long N=1e5+5;
const long long mod=1000000007; //998244353

void cases(){
    int r, x, y;
    cin>>r>>x>>y;
    long double x1=x, y1=y, r1=r;
    long double d=sqrt(x1*x1+y1*y1);
    double p=0.0;
    int ans=0;
    while (p<d){
    	p+=r1;
    	ans++;
    }
    if (ans==1 && d!=r) ans++;
    cout<<ans;
}

int32_t main(){
    std::ios::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    int t=1;
    // cin>>t;
    for (int i=0; i<t; i++){
    	// cout<<"Case #"<<i+1<<": ";
		cases();
    }
    return 0;
}
