import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.HashMap;
import java.util.InputMismatchException;

public class practiceClass {

	static class Reader {

		private InputStream mIs;
		private byte[] buf = new byte[1024];
		private int curChar;
		private int numChars;

		public Reader() {
			this(System.in);
		}

		public Reader(InputStream is) {
			mIs = is;
		}

		public int read() {
			if (numChars == -1) {
				throw new InputMismatchException();

			}
			if (curChar >= numChars) {
				curChar = 0;
				try {
					numChars = mIs.read(buf);
				} catch (IOException e) {
					throw new InputMismatchException();
				}
				if (numChars <= 0) {
					return -1;
				}
			}
			return buf[curChar++];
		}

		public String nextLine() {
			int c = read();
			while (isSpaceChar(c)) {
				c = read();
			}
			StringBuilder res = new StringBuilder();
			do {
				res.appendCodePoint(c);
				c = read();
			} while (!isEndOfLine(c));
			return res.toString();
		}

		public String next() {
			int c = read();
			while (isSpaceChar(c)) {
				c = read();
			}
			StringBuilder res = new StringBuilder();
			do {
				res.appendCodePoint(c);
				c = read();
			} while (!isSpaceChar(c));
			return res.toString();
		}

		double nextDouble() {
			return Double.parseDouble(next());
		}

		public long nextLong() {
			int c = read();
			while (isSpaceChar(c)) {
				c = read();
			}
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = read();
			}
			long res = 0;
			do {
				if (c < '0' || c > '9') {
					throw new InputMismatchException();
				}
				res *= 10;
				res += c - '0';
				c = read();
			} while (!isSpaceChar(c));
			return res * sgn;
		}

		public int nextInt() {
			int c = read();
			while (isSpaceChar(c)) {
				c = read();
			}
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = read();
			}
			int res = 0;
			do {
				if (c < '0' || c > '9') {
					throw new InputMismatchException();
				}
				res *= 10;
				res += c - '0';
				c = read();
			} while (!isSpaceChar(c));
			return res * sgn;
		}

		public boolean isSpaceChar(int c) {
			return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
		}

		public boolean isEndOfLine(int c) {
			return c == '\n' || c == '\r' || c == -1;
		}
	}

	static Reader r = new Reader();

	static void solve1() {

		int n = r.nextInt();
		int m = r.nextInt();

		int arr[] = new int[m];
		for (int i = 0; i < m; i++) {
			arr[i] = r.nextInt();
		}

		long ans = 0;
		int prev = 1;
		for (int i = 0; i < m; i++) {
			if (arr[i] >= prev)
				ans += (arr[i] - prev);
			else
				ans += (arr[i] - prev + n);
			prev = arr[i];
		}

		System.out.println(ans);
	}

	static void solve2() {

		int n = r.nextInt();
		int m = r.nextInt();
		int k = r.nextInt();

		int arr[] = new int[m + 2];
		for (int i = 1; i <= m + 1; i++) {
			arr[i] = r.nextInt();
		}

		int num = arr[m + 1], ans = 0;
		for (int i = 1; i <= m; i++) {
			int cnt = 0;
			BigInteger l = BigInteger.valueOf(arr[i]);
			BigInteger b = BigInteger.valueOf(num);
			for (int j = 0; j < n; j++) {
				if ((l.testBit(j) && !b.testBit(j)) || (!l.testBit(j) && b.testBit(j))) {
					cnt++;
				}
			}
			if (cnt <= k)
				ans++;
		}
		System.out.println(ans);

	}

	private static void solve3() {

		int n = r.nextInt();
		int l = r.nextInt();

		double arr[] = new double[n];
		for (int i = 0; i < n; i++) {
			arr[i] = r.nextInt();
		}

		Arrays.sort(arr);
		double start = arr[0] - 0;
		double end = l - arr[n - 1];

		double max = Double.MIN_VALUE;
		for (int i = 1; i < n; i++) {
			if ((arr[i] - arr[i - 1]) > max) {
				max = (arr[i] - arr[i - 1]);
			}
		}

		max /= 2;
		double max2 = Math.max(start, end);

		double ans = Math.max(max, max2);
		System.out.printf("%.10f", ans);

	}

	private static void solve4() {

		int n = r.nextInt();
		int arr[] = new int[n];

		for (int i = 0; i < n; i++) {
			arr[i] = r.nextInt();
		}

		int decCnt = 0;
		int start = -1, end = (n - 1);

		boolean flag = false;

		for (int i = 0; i < n - 1; i++) {
			if (arr[i] > arr[i + 1]) {
				if (!flag)
					decCnt++;
				if (start == -1) {
					start = i;
					flag = true;
				}
			} else if (flag && arr[i] < arr[i + 1]) {
				end = i;
				flag = false;
			}
		}

//		System.out.println(start + " " + end);
//		System.out.println(decCnt);

		if (decCnt >= 2) {
			System.out.println("no");
		} else {

			if (decCnt == 0) {
				System.out.println("yes");
				System.out.println(1 + " " + 1);
			} else {
				if (start == 0) {

					if (end == n - 1) {
						System.out.println("yes");
						System.out.println((start + 1) + " " + (end + 1));
					} else {
						if (arr[start] < arr[end + 1]) {
							System.out.println("yes");
							System.out.println((start + 1) + " " + (end + 1));
						} else {
							System.out.println("no");
						}
					}

				} else if (end == n - 1) {

					if (arr[start - 1] < arr[end]) {
						System.out.println("yes");
						System.out.println((start + 1) + " " + (end + 1));
					} else {
						System.out.println("no");
					}

				} else {

					if (arr[start] < arr[end + 1] && arr[end] > arr[start - 1]) {
						System.out.println("yes");
						System.out.println((start + 1) + " " + (end + 1));
					} else {
						System.out.println("no");
					}

				}
			}

		}

	}

	private static void solve5() {

		int n = r.nextInt();
		int m = r.nextInt();

		HashMap<String, String> map = new HashMap<String, String>();
		for (int i = 0; i < m; i++) {
			String s1 = r.next();
			String s2 = r.next();
			map.put(s1, s2);
			map.put(s2, s1);
		}

		for (int i = 0; i < n; i++) {
			String s = r.next();
			String s2 = map.get(s);

			if (s2.length() < s.length()) {
				System.out.print(s2 + " ");
			} else {
				System.out.print(s + " ");
			}
		}

	}

	private static boolean primeCheck(int num) {

		boolean flag = true;
		int cnt = 0;
		for (int i = 2; i * i <= num; i++) {
			if (num % i == 0) {
				flag = false;
			}
		}

		if (num == 1) {
			flag = false;
		}

		return flag;
	}

	private static void solve6() {

		int n = r.nextInt();
		long arr[] = new long[n];

		for (int i = 0; i < n; i++) {
			arr[i] = r.nextLong();
		}

		for (int i = 0; i < n; i++) {
			double root = Math.sqrt(arr[i]);
			int root1 = (int) Math.sqrt(arr[i]);

			if (root == root1 && primeCheck(root1)) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
		}

	}

	private static void solve7() {

		char[] s = r.next().toCharArray();

		int j = -1;
		int x = s[s.length - 1] - '0';

		for (int i = 0; i < s.length - 1; i++) {
			int y = s[i] - '0';

			if (y % 2 == 0) {
				j = i;
				if (y < x)
					break;
			}

		}

		if (j == -1)
			System.out.println(-1);
		else {
			char temp = s[j];
			s[j] = s[s.length - 1];
			s[s.length - 1] = temp;
			System.out.println(s);
		}

	}

	private static void solve8() {

		String s = r.next();
		char str[] = s.toCharArray();

		int k = r.nextInt();

		int arr[] = new int[26];
		int max = Integer.MIN_VALUE;

		for (int i = 0; i < 26; i++) {
			arr[i] = r.nextInt();
			if (arr[i] > max)
				max = arr[i];
		}

		long ans = 0;
		for (int i = 0; i < str.length; i++) {
			ans += ((i + 1) * arr[str[i] - 'a']);
		}

		for (int i = str.length; i < str.length + k; i++) {
			ans += ((i + 1) * max);
		}

		System.out.println(ans);

	}

	private static void solve9() {

		int m = r.nextInt();
		int s = r.nextInt();

		if (!(s >= 0 && s <= m * 9)) {
			System.out.println(-1 + " " + -1);
		} else {
			if (s == 0) {
				if (m == 1) {
					System.out.println(0 + " " + 0);
				} else {
					System.out.println(-1 + " " + -1);
				}
			} else {
				StringBuilder min = new StringBuilder();
				StringBuilder max = new StringBuilder();

				int temp = s, temp2 = s - 1;

				for (int i = 1; i <= m - 1; i++) {
					if (temp2 >= 9) {
						min.append(9);
						temp2 -= 9;
					} else {
						min.append(temp2);
						temp2 = 0;
					}
				}
				min.append(temp2 + 1);
				min = min.reverse();

				for (int i = 1; i <= m; i++) {
					if (temp >= 9) {
						max.append(9);
						temp -= 9;
					} else {
						max.append(temp);
						temp = 0;
					}
				}

				System.out.println(min + " " + max);
			}
		}

	}

	private static void solve10() {

		int n = r.nextInt();
		int arr[] = new int[n];

		for (int i = 0; i < n; i++) {
			arr[i] = r.nextInt();
		}

		System.out.println(countways(arr, n));

	}

	private static long countways(int a[], int n) {
		long cnt[] = new long[n];
		long s = 0;

		for (int i = 0; i < n; i++) {
			s += a[i];
		}

		if (s % 3 != 0)
			return 0;

		s /= 3;

		long ss = 0;

		for (int i = n - 1; i >= 0; i--) {
			ss += a[i];
			if (ss == s)
				cnt[i] = 1;
		}

		for (int i = n - 2; i >= 0; i--)
			cnt[i] += cnt[i + 1];

		long ans = 0;
		ss = 0;

		for (int i = 0; i + 2 < n; i++) {
			ss += a[i];
			if (ss == s)
				ans += cnt[i + 2];
		}
		return ans;
	}

	private static void solve11() {

		int n = r.nextInt();
		int m = r.nextInt();

		StringBuilder ans = new StringBuilder();

		int x = Math.min(m - n, n);
		if (n >= x) {
			for (int i = 1; i <= x; i++) {
				ans.append("011");
			}
			n -= x;
			m -= 2 * x;
			for (int i = 1; i <= n && n > 0 && m > 0; i++) {
				ans.append("01");
				m--;
				n--;
			}
			if (m <= 2) {
				for (int i = 1; i <= m; i++) {
					ans.append(1);
				}
				System.out.println(ans);
			} else
				System.out.println(-1);
		} else {
			System.out.println(-1);
		}

	}

	private static void solve12() {

		int rad = r.nextInt();
		int x = r.nextInt();
		int y = r.nextInt();
		int x_ = r.nextInt();
		int y_ = r.nextInt();

		int cDiff = (int) Math.hypot((x_ - x), (y_ - y));
//		System.out.println(cDiff);

		int ans = (int) Math.ceil((double) cDiff / (2 * rad));
		System.out.println(ans);

	}

	public static void main(String[] args) {

		// xenia and ringroad
//		solve1();

		// fedor and new Game
//		solve2();

		// vanya and lanterns
//		solve3();

		// sort the array
//		solve4();

		// lecture
//		solve5();

		// T-primes
//		solve6();

		// anton and currency
//		solve7();

		// DZY loves strings
//		solve8();

		// given length and sum of digits
//		solve9();

		// Number Of Ways
//		solve10();

		// Team
//		solve11();

		// amr and Pins
		solve12();

	}

}