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
#include <iostream>
#include <map>
#include <vector>

using namespace std;

struct Kol {
  int z=0;
  int n=0;
  int c=0;
};

int main()
{
  int n_pusz, i;
  std::cin >> n_pusz >> i;
  std::vector<Kol> puszki;
  puszki.resize(n_pusz+1);
  int b, e, c;
  while(i--) {
    std::cin >> b >> e >> c;
    --b;
    --e;
    if(c == 1) {
      ++(puszki[b].z);
      --(puszki[e+1].z);
    } else if(c == 2) {
      ++(puszki[b].n);
      --(puszki[e+1].n);
    } else if(c == 3) {
      ++(puszki[b].c);
      --(puszki[e+1].c);
    }
  }
  int ret = 0;
  Kol current;
  for(auto puszka : puszki) {
    current.z += puszka.z;
    current.n += puszka.n;
    current.c += puszka.c;
    if(current.z && current.n && !current.c)
      ret++;
  }
  std::cout << ret << std::endl;
  return 0;
}