L,M=list(map(int,input().split()))
list_lr=[]
for i in range(M):
    l,r=list(map(int,input().split()))
    #所有施工区域生成一个列表
    list_lr.append((l,r))
# 按左端点排序
sorted_list_lr=sorted(list_lr,key=lambda x:x[0])
# 合并区间
merged=[]
for curr_list_lr in sorted_list_lr:
    if not merged:
        merged.append(curr_list_lr)
    else:
        # 上一区间
        last=merged[-1]
        # 如果当前区间与上一区间重叠或相邻,则合并
        if curr_list_lr[0]<=last[1]+1:
            merged[-1]=(last[0],max(last[1],curr_list_lr[1]))
        else:
             merged.append(curr_list_lr)
# 移除的总棵树
removed=0
for j in merged:
    removed+=j[1]-j[0]+1
# 剩余总棵树=总-移除
print(L+1-removed)