N,M = gets.split(' ').map(&:to_i)
lr = M.times.map{ gets.split(' ').map(&:to_i)}
l_max = 0
r_min = 1000000000000000000000000

for i in 0..M-1
  if l_max<lr[i][0]
    l_max = lr[i][0]
  end
  if r_min>lr[i][1]
    r_min = lr[i][1]
  end
end

#puts l_max
#puts r_min
if l_max > r_min
  puts 0
elsif N<l_max
  puts 0
elsif N>=r_min
  puts r_min - l_max + 1
else
  puts N-l_max
end
