import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;


public class B {

	
	public static void main(String[] args)throws Exception {
		long r=in();
		long x=in();
		long y=in();
		long x1=in();
		long y1=in();
		double d=Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
		if (d==0 || d-0<0.00000001){
			System.out.println(0);
			return;
		}
		//System.out.println(d);
		int k=0;
		while (d>=4*r || d-4*r<0.00000001 && d-4*r>-0.00000001){
		//	System.out.println(d);
			k++;
			d-=2*r;
		}
k+=d==2*r||(d-2*r<0.00000001 && d-2*r>-0.00000001)|| d<2*r?1:2;
System.out.println(k);
	}
	static BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer st;
	static int in() throws IOException{
		if (st==null || !st.hasMoreTokens()){
			st=new StringTokenizer(buf.readLine());
		}
		return Integer.parseInt(st.nextToken());
	}
	static long ll() throws IOException{
		if (st==null || !st.hasMoreTokens()){
			st=new StringTokenizer(buf.readLine());
		}
		return Long.parseLong(st.nextToken());
	}
	static String str() throws IOException{
		if (st==null || !st.hasMoreTokens()){
			st=new StringTokenizer(buf.readLine());
		}
		return (st.nextToken());
	}
		static double dub() throws IOException{
			if (st==null || !st.hasMoreTokens()){
				st=new StringTokenizer(buf.readLine());
			}
			return Double.parseDouble(st.nextToken());
	}
}
