import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.MathContext;

public class ma {
//  static String out;
    static int MOD = 10007;
    static int n;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//        String in = br.readLine();
//        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String [] in = br.readLine().split(" ");
        BigDecimal r,x,y,xx,yy;
        r = new BigDecimal(in[0]);
        x = new BigDecimal(in[1]);
        y = new BigDecimal(in[2]);
        xx = new BigDecimal(in[3]);
        yy = new BigDecimal(in[4]);
        
//        sqrt((xx-x)*(xx-x) + (yy-y)*(yy-y))
        BigDecimal val = x.subtract(xx).pow(2);
        BigDecimal val2 = y.subtract(yy).pow(2);
        
        BigDecimal val3 = val.add(val2);
        BigDecimal val4 = sqrt(val3);
        
        
        BigDecimal val5 = val4.divide(r.multiply(new BigDecimal(2+"")));
        
        BigDecimal val6 = val5.round(new MathContext(10));
        
        
        if(val5.compareTo(val6) == 1){
            System.out.println(val6.add(BigDecimal.ONE));
            return ;
        }
        
        System.out.println(val6);
        
        
    }
    
    
    
    static BigDecimal sqrt(BigDecimal a){
        BigDecimal left = BigDecimal.ZERO;
        BigDecimal right = a;

        for (int i = 0; i < 100; ++i) {
            BigDecimal middle = left.add(right).divide(BigDecimal.valueOf(2));

            if (middle.multiply(middle).compareTo(a) < 0) {
                left = middle;
            } else {
                right = middle;
            }
        }

        return left.add(right).divide(BigDecimal.valueOf(2));
    }      
    
}
