În
gradina lui Ion sunt N flori
pe care acesta le-a asezat cu grija într-un cerc. Pentru a tine minte
pe care le-a udat si pe care nu, Ion le-a numerotat cu numere de la 1
la N astfel: a ales o floare
pe care a numerotat-o cu 1 si
plimbându-se de-a lungul cercului în sensul acelor de ceasornic,
le-a numerotat pe celelalte cu numere consecutive.
Doua albinute (una lucratoare si alta inspector) sar din floare în floare,
având un obicei destul de ciudat: daca una dintre ele este în floarea
cu numarul x, ea va sari peste
K flori (în sensul acelor
de ceasornic). De exemplu, pentru N=10,
K=3, daca o albinuta se afla
în floarea cu numarul 6,
ea va sari în floarea cu numarul 9,
iar daca se afla în floarea cu numarul 10,
va sari în floarea cu numarul 3.
Pentru a putea duce ce a cules la stup, albinuta lucratoare face mai multe drumuri.
La drumul cu numarul i, albinuta
începe din floarea cu numarul ai
si sare din floare în floare de bi
ori. De fiecare data când ajunge într-o floare la drumul i,
albinuta culege ci
masuri de polen din acea floare. Albinuta culege polen si din prima floare din
care pleaca si poate culege polen de mai multe ori dintr-o floare, daca la drumul
respectiv va trece de mai multe ori prin acea floare.
O albinuta inspector verifica din când în când performanta
albinutei lucratoare. Ea face drumuri la fel ca albinuta lucratoare (la un drum
i, începe din floarea cu
numarul ai si face
bi salturi), dar în
loc sa culeaga polen, calculeaza câte masuri de polen a cules în
total albinuta lucratoare pâna la momentul respectiv din florile de pe
acest drum. Albinuta inspector ia în considerare si floarea din care pleaca,
si daca la drumul respectiv trece de mai multe ori printr-o floare, va aduna
la total de fiecare data numarul de masuri de polen din acea floare.
Cerinta
Scrieti un program care
sa gaseasca raspunsul (modulo 30103)
pentru fiecare drum al albinutei inspector.
Date de intrare
Fisierul de intrare albinuta.in
contine pe prima linie numerele N,
K si M
(M reprezinta numarul total de
drumuri, atât ale albinutei lucratoare cât si ale albinutei inspector).
Pe urmatoarele M linii se vor
afla triplete de forma ai,
bi, ci.
Daca ci <> 0,
atunci acest triplet reprezinta un drum al albinutei lucratoare.
Daca ci = 0, atunci
acest triplet reprezinta un drum al albinutei inspector.
Date de iesire
Fisierul de iesire albinuta.out
va avea atâtea linii câte drumuri ale albinutei inspector exista.
Fiecare linie va contine un numar natural reprezentând raspunsul cerut
(modulo 30103).
Restrictii si precizari
1 <= N < 50 000
1 <= K < 20
1 <= M < 50 000
1 <= ai <=
N
0 <= bi <
N
0 <= ci <
100
Exemplu
albinuta.in
albinuta.out
Explicatie
10 3 5
2 4 2
1 1 9
9 4 0
5 2 7
8 2 0
17
38
Florile de pe primul
drum al albinutei inspector sunt 9, 2, 5, 8 si 1. Din acestea albinuta
lucratoare a cules respectiv 0, 2, 2, 2 si 11 masuri de polen, deci în
total 17 masuri.
Florile de pe cel de-al doilea drum al albinutei inspector sunt 8, 1 si
4. Din acestea albinuta lucratoare a cules respectiv 9, 18 si 11 masuri
de polen, deci în total 38 masuri.