Cerință
Avem o matrice în care ne imaginăm fiecare celulă ca fiind o cutie în care se poate pune vopsea.
Se realizează operații de adăugare de vopsea în cutii. La o operație se precizează o submatrice de cutii. În fiecare cutie din submatrice se pune câte o unitate de vopsea de aceeași culoare. Astfel, există posibilitatea să ajungem ca într-o cutie să punem vopsea de mai multe ori.
Vopseaua folosită la o anumită operație este de culoare total diferită de toate tipurile folosite până atunci.
Când într-o cutie se pune din nou vopsea, aceasta se amestecă împreună cu vopseaua existentă acolo.
Practic, tipul de vopsea obținut într-o cutie la un final este dat de tipurile de vopsea folosite la fiecare operație care a afectat acea cutie. Prin amestecare se obține mereu un tip de vopsea diferit și el de al tuturor tipurilor de vopsea folosite la operațiile individuale dar și de alte tipuri de vopsea obținute din amestec cu altă structură a culorilor.
Să se determine câte tipuri distincte de vopsea se obțin.
Date de intrare
Fișierul color.in
conține pe prima linie numărul reprezentând dimensiunea matricei și numărul reprezentând numărul de operații.
Pe fiecare din următoarele linii se află câte numere, descriind câte o operație, cu structura: . Acestea reprezintă în ordine: linia și coloana colțului stânga sus al submatricei afectate respectiv linia și coloana colțului dreapta jos.
Date de ieșire
Fișierul color.out
conține numărul de culori distincte care se află la final în cutiile matricei.
Restricții și precizări
- ;
- ;
- ;
- Se garantează că fiecare cutie este afectată de maxim operații;
- Inițial toate cutiile sunt goale;
Exemplu
color.in
3 4
1 1 2 2
2 2 3 3
3 1 3 3
2 3 2 3
color.out
5
Explicație
Culorile distincte obținute în cutii sunt: , , , , .