1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <bits/stdc++.h>
using namespace std;

int N, M;
int a[6][1000003];
//a[0][i] - zoltePocz, a[1][i] - niebieskiePocz, a[2][i] - czerwonePocz
//a[3][i] - zolteKon, a[4][i] - niebieskieKon, a[5][i] - czerwoneKon


int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> N >> M;
    for(int i = 0, l, r, k; i < M; i++){
        cin >> l >> r >> k;

        a[k - 1][l]++;
        a[k + 2][r]++;
    }

    /*for(int i = 1; i <= N; i++) cout << i % 10 << ' ';
    cout << endl;

    for(int i = 1; i <= N; i++) cout << a[0][i] << ' ';
    cout << endl;

    for(int i = 1; i <= N; i++) cout << a[3][i] << ' ';
    cout << endl;

    for(int i = 1; i <= N; i++) cout << a[1][i] << ' ';
    cout << endl;

    for(int i = 1; i <= N; i++) cout << a[4][i] << ' ';
    cout << endl;

    for(int i = 1; i <= N; i++) cout << a[2][i] << ' ';
    cout << endl;

    for(int i = 1; i <= N; i++) cout << a[5][i] << ' ';
    cout << endl;
    cout << endl;*/

    int zo = 0, ni = 0, cz = 0, wynik = 0;

    for(int i = 1; i <= N; i++){
        //a[0][i] - zoltePocz, a[1][i] - niebieskiePocz, a[2][i] - czerwonePocz
        //a[3][i] - zolteKon, a[4][i] - niebieskieKon, a[5][i] - czerwoneKon
        zo += a[0][i];
        ni += a[1][i];
        cz += a[2][i];

        if(zo > 0 && ni > 0 && cz <= 0) wynik++;
        //cout << zo << ' ' << ni << ' ' << cz << '\n';

        zo -= a[3][i];
        ni -= a[4][i];
        cz -= a[5][i];

    }
    cout << wynik << '\n';


    return 0;
}