#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("fast-math")

#include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

#define deb(x) cout << #x << " is " << x << "\n"
#define int long long
#define MOD 1000000007LL
#define PI acos(-1)

template <typename T>
using min_heap = priority_queue<T, vector<T>, greater<T>>;

template <typename T>
using max_heap = priority_queue<T>;

template <class T>
using ordered_set = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;

template <typename... T>
void read(T &...args) {
    ((cin >> args), ...);
}

template <typename... T>
void write(T &&...args) {
    ((cout << args), ...);
}

template <typename T>
void readContainer(T &t) {
    for (auto &e : t) {
        read(e);
    }
}

template <typename T>
void writeContainer(T &t) {
    for (const auto &e : t) {
        write(e, " ");
    }
    write("\n");
}

void solve(int tc) {
    long double r, x, y;
    read(r, x, y);
    long double num = sqrt((x * x) + (y * y));
    if (num < r) {
        write(2, "\n");
        return;
    } else if (num == r) {
        write(1, "\n");
        return;
    }
    int ans = ceil(num / r);
    write(ans, "\n");
}

signed main() {
    // #ifndef ONLINE_JUDGE
    //     freopen("input.txt", "r", stdin);
    //     freopen("output.txt", "w", stdout);
    // #endif
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int tc = 1;
    // read(tc);
    for (int curr = 1; curr <= tc; ++curr) {
        solve(curr);
    }
    return 0;
}
// C - Compass Walking
#include <bits/stdc++.h>
using namespace std;

int main(){
	int64_t d2, ok, ng, m, r, x, y; cin>>r>>x>>y;
	d2 = x*x + y*y;
	ok = 0, ng = 1e6;
	while(ng - ok > 1){
		m = (ok + ng) / 2;
		__int128_t rm2 = (__int128_t)r*r*m*m;
		(rm2 < d2? ok:ng) = m;
	}
	cout<< ok + 1 + (d2 < r*r) <<endl;
}
