#include <bits/stdc++.h>
using namespace std;
long long M;
long long mul(long long a, long long b) { return ((a % M) * (b % M)) % M; };
long long sub(long long a, long long b) { return ((a % M) - (b % M) + M) % M; };
long long pwr(long long a, long long b) {
  if (b == 0) return 1;
  if (b == 1) return a;
  if (a == 1) return 1;
  long long p1 = pwr(a, b / 2), p2 = mul(p1, p1);
  if (b % 2) return mul(p2, a);
  return p2;
};
long long add(long long a, long long b) { return (a % M + b % M) % M; };
long long divi(long long a, long long b) {
  if (a < b) return 0LL;
  return mul(a, pwr(b, M - 2));
};
bool isRev(int a[], int l, int r) {
  while (l < r) {
    if (a[r] != l || a[l] != r) return false;
    l++;
    r--;
  }
  return true;
}
int p[10000007];
void seive() {
  p[1] = 1;
  for (int i = 2; i <= sqrt(1e7); i++) {
    if (p[i] == 1) continue;
    for (int j = i * i; j <= 1e7; j += i) {
      p[j] = 1;
    }
  }
}
int main() {
  long long r, x1, y1, x2, y2;
  cin >> r >> x1 >> y1 >> x2 >> y2;
  long long mv = r * 4.0 * r,
            d = abs(x2 - x1) * abs(x2 - x1) + abs(y2 - y1) * abs(y2 - y1);
  long long t = sqrt(d / mv);
  while (t * t * mv < d) t++;
  cout << t;
  return 0;
}
