Octav e încă mititel, dar merge la grădiniță. Acolo a învățat să deseneze diferite modele geometrice pe foi dreptunghiulare de matematică. Foaia de matematică are pătrățele organizate pe linii (numerotate de sus în jos de la la ) și coloane (numerotate de la stânga la dreapta de la la ). Astfel, orice pătrățel de pe foaie poate fi identificat prin numărul liniei și numărul coloanei pe care se află acesta.
Octav începe din colțul stânga-sus al foii de matematică (pătrățelul ) și merge diagonal în jos, marcând cu x fiecare pătrățel prin care trece. Când ajunge la una dintre marginile foii, el schimbă direcția și sensul de deplasare, ca în imaginea următoare.

El se deplasează continuu, marcând cu x pătrățelele prin care trece, până când ajunge din nou într-un colț al foii. Octav consideră că pătrățelele marcate cu x sunt ziduri.
Pătrățelele marcate cu x delimitează pe foaia de matematică diferite modele geometrice. Un model este o zonă maximală (care nu mai poate fi extinsă) de pătrățele nemarcate, cu proprietatea că putem ajunge de la orice pătrățel al zonei la oricare altul efectuând doar deplasări pe direcțiile sus, jos, stânga, dreapta, fără a trece prin zid.
Aria unui model este egală cu numărul de pătrățele din care este format modelul.
Două modele A și B sunt considerate egale dacă putem deplasa imaginar modelul A peste modelul B, fără a-l roti, astfel încât cele două să se suprapună perfect (orice pătrățel din A să fie peste un pătrățel din B și niciun pătrățel din B să nu rămână neacoperit). Observăm că relația de egalitate este simetrică.
Octav analizează cu atenție modelele obținute și le grupează pe categorii. O categorie este formată din toate modelele egale pe care le-a obținut.
Pătrățelul reprezentativ al unei categorii este pătrățelul cu cea mai mică poziție care aparține unui model din categoria respectivă.
Spunem că poziția este mai mică decât poziția dacă () sau ( și ).
Descrierea unei categorii este constituită din patru valori , unde este aria fiecărui model din categoria respectivă, reprezintă numărul de modele din categorie, iar reprezintă poziția pătrățelului reprezentativ al categoriei respective.
Cerințe
Cunoscând numerele naturale și , scrieți un program care să rezolve următoarele cerințe:
- determină numărul de pătrățele marcate cu x;
- determină numărul total de modele obținute;
- determină numărul de categorii obținute;
- determină descrierile categoriilor de modele obținute, ordonate crescător după pătrățelul reprezentativ.
Date de intrare
Fișierul de intrare model.in conține pe prima linie trei numere naturale separate prin câte un spațiu , reprezentând cerința care trebuie să fie rezolvată (, , sau ), numărul de linii, respectiv numărul de coloane de pe foaia de matematică.
Date de ieșire
Fișierul de ieșire model.out conține:
- Dacă : un număr natural reprezentând răspunsul la cerința ;
- Dacă : descrierile categoriilor obținute, în forma descrisă în enunț, câte o categorie pe o linie, ordonate crescător după pătrățelul reprezentativ.
Restricții și precizări
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 12 | |
| 2 | 28 | |
| 3 | 21 | |
| 4 | 39 |
Exemplul 1
model.in
1 10 13
model.out
34
Explicație
În toate cele 4 exemple, pe foaia de matematică există pătrățele, organizate pe linii și coloane, astfel:

După cum se vede, numărul de pătrățele marcate cu x este .
Exemplul 2
model.in
2 10 13
model.out
10
Explicație
Numărul total de modele obținute este .
Exemplul 3
model.in
3 10 13
model.out
7
Explicație
Numărul total de modele distincte obținute este .
Exemplul 4
model.in
4 10 13
model.out
9 2 1 2
9 1 2 1
13 3 2 7
9 1 2 13
6 1 8 1
9 1 8 7
6 1 8 13
Explicație
Descrierile celor categorii de modele sunt:
