N, M = io.read("*n", "*n", "*l")
L_max = 0
R_min = 10^5
for i = 1, M do
    L, R = io.read("*n", "*n", "*l")
    if L <= R_min then
        L_max = math.max(L, L_max)
    end
    if R >= L_max then
        R_min = math.min(R, R_min)
    end
end
if R_min > L_max then
    print(string.format("%d", R_min-L_max+1))
else
    print(0)
end