import java.util.* ;
import java.lang.* ;
import java.io.*;

public class javaTemplate {
	
	static FastReader sc = new FastReader();
	//	static Scanner sc = new Scanner(System.in) ;

	public static void main(String[] args) {
		
		
		double r = sc.nextDouble();
		double x = sc.nextDouble();
		double y = sc.nextDouble();
		double xd = sc.nextDouble();
		double yd = sc.nextDouble();
		
		double count = (Math.sqrt(Math.pow(Math.abs(x-xd), 2) + Math.pow(Math.abs(y-yd), 2)))/(2*r) ;
	
		System.out.println((int)Math.ceil(count));
		
		
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	 
	
	


	
	
//_________________________//Template//_____________________________________________________________________
	
	
		//		FAST I/O
		static class FastReader {
	        BufferedReader br;
	        StringTokenizer st;
	        
	        public FastReader()
	        {
	            br = new BufferedReader(
	                new InputStreamReader(System.in));
	        }
	 
	        String next()
	        {
	            while (st == null || !st.hasMoreElements()) {
	                try {
	                    st = new StringTokenizer(br.readLine());
	                }
	                catch (IOException e) {
	                    e.printStackTrace();
	                }
	            }
	            return st.nextToken();
	        }
	 
	        int nextInt() { return Integer.parseInt(next()); }
	 
	        long nextLong() { return Long.parseLong(next()); }
	 
	        double nextDouble()
	        {
	            return Double.parseDouble(next());
	        }
	 
	        String nextLine()
	        {
	            String str = "";
	            try {
	                str = br.readLine();
	            }
	            catch (IOException e) {
	                e.printStackTrace();
	            }
	            return str;
	        }
		}
	
	
		
		
		
		
		
		
		
		
		
		//		LPS Array
		static void LPSArray(String pat, int M, int lps[]) {
			int i = 1 ;
			int length = 0 ;
			lps[0] = 0 ;
			
			while(i < M) {
				if(pat.charAt(i) == pat.charAt(length)) {
					length ++ ;
					lps[i] = length ;
					i ++ ;
				} else if(length != 0) {
					length = lps[length-1] ;
				} else {
					lps[i] = length ;
					i ++ ;
				}
			}
		}
		
		
		
		//		KMP Search
		static boolean kmpSearch(String pat, String txt) {
			boolean val = false ;
			int M = pat.length() ;
			int N = txt.length() ;
			
			int lps[] = new int[M] ;
			
			int j = 0 ;
			int i = 0 ;
			
			LPSArray(pat,M,lps) ;
			
			while(i < N) {
				if(pat.charAt(j) == txt.charAt(i)) {
					i ++ ;
					j ++ ;
				} else if(j != 0) {
					j = lps[j-1] ;
				} else {
					i ++ ;
				}
				
				if(j == M) {
					 val = true ;
					 j = lps[j-1] ;
				}
			}
			
			return val ;
		}
	
	
		
			
			
		
		
		
		//		Palindrom or Not
		static boolean isPalindrome(String str, int low, int high) {
					
					while (low < high) {
						if (str.charAt(low) != str.charAt(high)) return false;
					 	low++;
					 	high--;
					}
					return true;
				}
	
	
		// Euler Tortient fx
	static int Phi(int n) {
		
		int count = 0 ;
		for(int i = 1 ; i< n ; i++) {
			if(GCD(i,n) == 1) count ++ ;
		}
		return count ;
	}
	
	
	
		// Integer Sort
		static void sort(int[] a) 
		   {
				ArrayList<Integer> l=new ArrayList<>();
				for (int i:a) l.add(i);
				Collections.sort(l);
				for (int i=0; i<a.length; i++) a[i]=l.get(i);
			}
	
		
		
		
		// Long Sort
		static void sort(long[] a) 
		   {
				ArrayList<Long> l=new ArrayList<>();
				for (long i:a) l.add(i);
				Collections.sort(l);
				for (int i=0; i<a.length; i++) a[i]=l.get(i);
			}
	
	
		
		// boolean Value
		static void val(boolean val)
	    {
	       System.out.println(val ? "YES" : "NO");
	       System.out.flush();
	    }
	
	
		
	
		// GCD
		public static int GCD(int a , int b) {
				if(b == 0) return a ;
				
				return GCD(b, a%b) ;
			}
	
		
		
		
		
		
		// sieve
		public static boolean [] sieveofEratosthenes(int n) {
			
			boolean isPrime[] = new boolean[n+1] ;
			Arrays.fill(isPrime, true);
			isPrime[0] = false ;
			isPrime[1] = false ;
			
			for(int i = 2 ; i * i <= n ; i++) {
				
				for(int j = 2 * i ; j<= n ; j+= i) {
					isPrime[j] = false ;
				}
			}
			
			return isPrime ;
		}
		
		
		
		
		// fastPower
		public static long fastPowerModulo(long a, long b, long n) {
			
			long res = 1 ;
			
			while(b > 0) {
			if((b&1) != 0) {
				res = (res * a % n) % n ;
			}
			
			a = (a % n * a % n) % n ;
			b = b >> 1 ;
			}
			
			return res ;
		}
	

}





