import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Deque;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Stack;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DecimalFormat;
import java.util.StringTokenizer;
import java.util.TreeSet;
public class cfvc15
{
	static BufferedReader reader;
    static StringTokenizer tokenizer;
    static void init(InputStream input) 
    {
        reader = new BufferedReader( new InputStreamReader(input) );
        tokenizer = new StringTokenizer("");
    }
    static String next() throws IOException
    {
        while ( ! tokenizer.hasMoreTokens() )
        {
            tokenizer = new StringTokenizer(reader.readLine() );
        }
        return tokenizer.nextToken();
    }
 
    static long nextInt() throws IOException 
    {
        return Long.parseLong( next() );
    }
	static PrintWriter writer;
	static void outit(OutputStream outputStream)
	{
		writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
	}
	static void print(Object...objects) {
		for (int i = 0; i < objects.length; i++) 
		{
			if (i != 0)
				writer.print(' ');
			writer.print(objects[i]);
		}
	}
 
	static void println(Object...objects) 
	{
		print(objects);
		writer.println();
	}
 
	static void close()
	{
		writer.close();
	}
 
	static void flush() {
		writer.flush();
	}
	public static void print_a(char[] a_p)
    {
    	for(char i : a_p)
    	{
    		print(i+" ") ;
    	}
//    	println() ;
    }
	static boolean [] prime ;
	static int [] fac ;
    public static void main(String [] args) throws IOException
    {
    	init(System.in) ;
    	outit(System.out) ;
//    	int t = (int) nextInt() ;
//    	for(int i =0 ; i<t ; i++)
    	output() ;
        flush();
        close();
    }
    static long mod = 1000000007 ;
    static int [] a ;
    static int [] b ;
    static long [][][] cache;
    static int [][] req ;
    public static void output() throws IOException
    {
    	long r = nextInt() ;
    	long x = nextInt() ;
    	long y = nextInt() ;
    	long x1 = nextInt() ;
    	long y1 = nextInt() ;
    	double d = Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)) ;
    	long ans = (long) Math.ceil(d/(2*(double)r)) ;
    	println(ans) ;
     }
} 