#入力:N,M(int:整数)
def input2():
	return map(int,input().split())

N,M=input2()
L,R=[],[]
for i in range(M):
	l,r=input2()
	L.append(l)
	R.append(r)

MIN=0
MAX=N

for j in range(M):
	if L[j]>MIN:
		MIN=L[j]
	if R[j]<MAX:
		MAX=R[j]

if MAX<MIN:
	print(0)
else:
	print((MAX-MIN)+1) def input2():
	return map(int,input().split()) input2 return map(int,input().split()) map(int,input().split()) map int input().split() ().split () input split N,M=input2() N input2() input2 M L,R=[],[] L [] R [] for i in range(M):
	l,r=input2()
	L.append(l)
	R.append(r) i range(M) range M l,r=input2() l input2() input2 r L.append(l) L.append L append l R.append(r) R.append R append r MIN=0 MIN 0 MAX=N MAX N for j in range(M):
	if L[j]>MIN:
		MIN=L[j]
	if R[j]<MAX:
		MAX=R[j] j range(M) range M if L[j]>MIN:
		MIN=L[j]
	 L[j]>MIN L[j] L j MIN MIN=L[j] MIN L[j] L j if R[j]<MAX:
		MAX=R[j] R[j]<MAX R[j] R j MAX MAX=R[j] MAX R[j] R j if MAX<MIN:
	print(0)
else:
	print((MAX-MIN)+1) MAX<MIN MAX MIN print(0) print 0 print((MAX-MIN)+1) print (MAX-MIN)+1 MAX-MIN MAX MIN 1 L,R=[],[] [] L MAX=R[j] R[j] MAX MAX=N N MAX N,M=input2() input2() N l,r=input2() input2() l MIN=L[j] L[j] MIN def input2():
	return map(int,input().split()) def input2():
	return map(int,input().split()) input2 M=input2() input2() M MIN=0 0 MIN R=[],[] [] R r=input2() input2() r
#入力:N,M(int:整数)
def input2():
	return map(int,input().split())

N,M=input2()
L,R=[],[]
for i in range(M):
	l,r=input2()
	L.append(l)
	R.append(r)

MIN=0
MAX=N

for j in range(M):
	if L[j]>MIN:
		MIN=L[j]
	if R[j]<MAX:
		MAX=R[j]

if MAX<MIN:
	print(0)
else:
	print((MAX-MIN)+1)
