import os , sys,time, collections , math , pprint , itertools as it , operator as op , bisect as bs ,functools as fn
maxx , localsys , mod = 1<<60, 0 , int(1e9 + 7) 
nCr = lambda n, r: reduce(mul, range(n - r + 1, n + 1), 1) // factorial(r)
ceil = lambda n , x: (n+x -1 )//x 
osi, oso = '/home/priyanshu/Documents/cp/input.txt','/home/priyanshu/Documents/cp/output.txt'
if os.path.exists(osi):
	sys.stdin  = open(osi, 'r') ; sys.stdout = open(oso, 'w')
	
input = sys.stdin.readline
from functools import reduce
def maps():return map(int , input().split())

#THINK ABOUT THE EDGE CASES ..........
def Kth_beautiful_string():
	for _ in range(int(input())):
		n , k = maps() ; arr = ['a']*n
		for i in range(n-1 , -1 , -1):
			if n-i-1 >= k:
				arr[i]=  arr[i + (n-i-1) - (k-1)] ='b'
				print(''.join(arr)) ; break
			k-=n-i-1
	#constantly decrease the number of string whose left most position is at i,because at every ith position (n-i-1) strings exists whose left most position is at i

r , x1,y1 ,x2,y2 = maps()
dis = ((x2-x1)**2 + (y2-y1)**2)**0.5
x = math.ceil(math.ceil(dis)/(2*r))
print(x)