자료 구조

행이 10억까지인 삼각뿔에서 M개의 필수 칸이 주어질 때, 채운 모든 칸이 아래 두 지지 칸도 채워지도록 하는 최소 채움 칸 수를 구한다.

어려움8그리디정렬수학조합론아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

컴퓨터 안에서 모든 자료는 자료 블록으로 이루어진 2차원 피라미드에 저장된다.

어떤 피라미드는 행이 NN개이고, 각 행에는 위에서 아래로 11번부터 NN번까지 번호가 붙는다. rr번 행에는 블록 자리가 rr개 있고, 왼쪽에서 오른쪽으로 (r,1)(r, 1)부터 (r,r)(r, r)까지 이름이 붙는다. 11번 행부터 N1N - 1번 행까지의 블록 자리 (r,c)(r, c)는 바로 아래 행의 블록 자리 두 개, 즉 (r+1,c)(r + 1, c)(r+1,c+1)(r + 1, c + 1) 위에 놓인다. 아래 그림은 행이 6개인 피라미드이고, 블록 자리 (3,1)(3, 1), (4,4)(4, 4), (6,2)(6, 2)를 빨간색으로 표시했다.

블록 자리는 자료를 담고 있거나 비어 있다. 자료를 담은 블록 자리는 맨 아래 행(NN번 행)에 있거나 자신을 받치는 블록 자리 두 개가 모두 자료를 담고 있을 때만 안정하다. 비어 있지 않은 블록 자리가 모두 안정할 때만 피라미드 전체가 안정하다.

자료를 반드시 담아야 하는 블록 자리가 MM개 있고, 그중 ii번째는 블록 자리 (ri,ci)(r_i, c_i)다. 나머지 블록 자리에는 아무 자료나 담아도 되고 비워 둬도 된다. 자료는 비싸서 되도록 적게 담고 싶다. 필요한 블록 자리 MM개가 모두 자료를 담고 피라미드 전체가 안정할 때, 자료를 담는 블록 자리 개수의 최솟값을 구하라.

입력

첫째 줄에 두 정수 NNMM이 주어진다 (1N1091 \le N \le 10^9, 1M1051 \le M \le 10^5).

다음 MM개 줄에 각각 두 정수 rir_icic_i가 주어진다 (1ciriN1 \le c_i \le r_i \le N). ii번째로 자료를 담아야 하는 블록 자리의 행 번호와 그 행에서의 위치다. 필요한 블록 자리 MM개는 서로 다르다.

출력

피라미드 전체가 안정할 때 자료를 담는 블록 자리 개수의 최솟값을 한 줄에 출력한다. 이 값은 32비트 부호 있는 정수 범위를 넘을 수 있다.