//#pragma GCC optimize("Ofast")
//#pragma GCC target("avx,avx2,fma")
//#pragma GCC optimization("unroll-loops")
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
#define int long long
template<class T> using indexed_set=tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;
const int N=2e5+7;
const int mod=1e9+7;
const int INF=1e18+7;
const double EPS=1e-12;
const int dx[]={-1,1,0,0}; // UDLR
const int dy[]={0,0,-1,1}; // UDLR
inline int maximum(int a,int b) {int c=a>b?a:b; return c;}
inline int minimum(int a,int b) {int c=a>b?b:a; return c;}

int32_t main(){
    cin.tie(nullptr)->sync_with_stdio(false);

    vector<int> A(3); cin>>A[0]>>A[1]>>A[2];
    sort(A.begin(),A.end());
    do{
      if(A[2]-A[1]==A[1]-A[0]){
       cout<<"Yes"<<'\n'; return 0;
      }
    }while(next_permutation(A.begin(),A.end()));

     cout<<"No"<<'\n';

 return 0;
}

#include <iostream>
#include <cmath>
using namespace std;

const double EPS = (double)(1e-9);
double R, X, Y;

int main(void) {
	cin >> R >> X >> Y;

	double d = sqrt(X * X + Y * Y);
	double m = d / R;
	int n = (int)m;
	double diff = d - (R * n);

	int	ans = 2;
	if (d >= R) {
		ans = n;
		if (diff > EPS)
			++ans;
	}
	cout << ans << '\n';
	return 0;
}
