import java.util.*; 
import java.io.*; 
import java.lang.*;
//List<Integer> list = Arrays.stream(number).boxed().collect(Collectors.toList());

public class CFsubmisson
{
    static class FastReader 
    { 
        BufferedReader br; 
        StringTokenizer st; 
  
        public FastReader() 
        { 
            br = new BufferedReader(new
                     InputStreamReader(System.in)); 
        } 
  
      public  String next() 
        { 
            while (st == null || !st.hasMoreElements()) 
            { 
                try
                { 
                    st = new StringTokenizer(br.readLine()); 
                } 
                catch (IOException  e) 
                { 
                    e.printStackTrace(); 
                } 
            } 
            return st.nextToken(); 
        } 
         public int nextInt() 
        { 
            return Integer.parseInt(next()); 
        } 
      public String nextLine() 
        { 
            String str = ""; 
            try
            { 
                str = br.readLine(); 
            } 
            catch (IOException e) 
            { 
                e.printStackTrace(); 
            } 
            return str; 
        } 
    }
    static int setBits(int m) 
    {
        int ans=0;
        while(m>0)
        {
        m=m&(m-1);
        ans++;
        }
        return ans;
    }
    static int solve(int A, int B) //Different bits in a&b
    { 
    int count = 0; 
    for (int i = 0; i < 32; i++)
    { 
        if (((A >> i) & 1) != ((B >> i) & 1)) 
            count++; 
     } 
  
    return count;
    } 
  
    public static void main(String[] args) 
    { 
        FastReader sc=new FastReader();
        int r=sc.nextInt(),x=sc.nextInt(),y=sc.nextInt(),p=sc.nextInt(),q=sc.nextInt();
        long ans=0L;
        int distance=(p-x)*(p-x)+(q-y)*(q-y);
        double rt=Math.sqrt(distance);
        ans=(long)Math.ceil((rt)/(2*r));
        System.out.println(ans);

    }
        
}