import static java.lang.Double.parseDouble;
import static java.lang.Integer.parseInt;
import static java.lang.Long.parseLong;
import static java.lang.Math.min;
import static java.lang.System.exit;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.StringTokenizer;
public class Main{
     static BufferedReader in;
     static PrintWriter out;
     static StringTokenizer tok;
     static void solve() throws IOException{
          int r=Int();
          int x=Int();
          int y=Int();
          int x1=Int();
          int y1=Int();
          double dist=Math.sqrt((long)Math.abs((long)(x1-x)*(x1-x))+(long)Math.abs((long)(y1-y)*(y1-y)));
         // int t=r*2;
          
          out.println((int)Math.ceil(dist/(2*r)));
     }
     static int Int() throws IOException{
          return parseInt(next());
     }
     static String next() throws IOException{
          while(tok==null || !tok.hasMoreTokens()){
               tok=new StringTokenizer(in.readLine());
          }
          return tok.nextToken();
     }
     public static void main(String args[]){
          try{
               in=new BufferedReader(new InputStreamReader(System.in));
               out=new PrintWriter(new OutputStreamWriter(System.out));
               solve();
               in.close();
               out.close();
          }catch(Throwable e){
               e.printStackTrace();
               exit(1);
          }
     }
}