본그림자 해독

최대 100개의 안전점 (x, y, b)가 주어질 때, 정사각형 [0, n]^2 안에서 |x-p|^3 + |y-q|^3 <= b 영역에 하나도 포함되지 않는 격자점 (p, q)의 개수를 센다.

어려움8기하수학구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

새로운 암호 알고리즘을 공격하려고 한다. 공격에 성공하려면 정수 쌍 (p,q)(p, q)로 이루어진 키를 찾아야 한다. 키는 위치를 모르는 2차원 정수 격자 위의 한 점이다. 다만 주어진 nn에 대해 (p,q)(p, q)가 격자점 (0,0)(0, 0)(n,n)(n, n)이 만드는 정사각형 안에 있다는 사실은 알고 있다. 즉 0p,qn0 \le p, q \le n이다.

공격은 세 단계로 이루어진다.

  1. 안전점과 그 경계값을 찾는다.
  2. 어떤 안전점의 본그림자 안에 들어가는 점을 키 후보에서 제외한다.
  3. 남은 점을 하나씩 시험해서 어느 것이 키인지 확인한다.

1단계는 이미 끝났고, (x,y,b)(x, y, b) 형태의 안전점 여러 개가 입력으로 주어진다.

2단계에서는 점 (p,q)(p, q)가 어떤 안전점의 본그림자 안에 들어가면 그 점을 후보에서 뺀다. 점 (p,q)(p, q)가 안전점 (x,y,b)(x, y, b)의 본그림자 안에 들어간다는 것은 다음 조건과 동치이다.

xp3+yq3b|x - p|^3 + |y - q|^3 \le b

3단계에 남는 점이 몇 개인지 세어라. 공격을 끝내는 데 필요한 작업량을 가늠하는 값이다.

안전점과 본그림자, 남은 점을 나타낸 그림

그림 1. 한 예시의 안전점과 본그림자(빨간색), 그리고 남은 점(파란색).

입력

첫 줄에 정수 nnkk가 공백으로 구분되어 주어진다. 2n1082 \le n \le 10^8, 0k1000 \le k \le 100이다.

이어지는 kk개의 줄에는 안전점을 나타내는 세 정수 xx, yy, bb가 공백으로 구분되어 주어진다. xxyy는 모두 [0,n][0, n] 범위이고, 경계값 bb[0,n][0, n] 범위이다.

출력

0p,qn0 \le p, q \le n이면서 어떤 안전점의 본그림자에도 들어가지 않는 점 (p,q)(p, q)의 개수를 출력한다.