N, M = gets.split.map!(&:to_i)
l, r = [], []
while temp = gets do
	l_i, r_i = temp.split.map!(&:to_i)
	l << l_i
	r << r_i
end
l_max = l.max
r_min = r.min
anser = r_min - l_max + 1
puts (anser < 0) ? 0 : anser