
Billi çalışqan bir tələbədir. O, kompüterləri çox sevir və onlar haqqında mümkün qədər çox şey öyrənmək istəyir. Hazırda qraf nəzəriyyəsini öyrənir və şəkildə göstərilən qrafı quracaq bir proqram yazmalıdır.
Qrafın zirvələri ardıcıl olaraq tam ədədlərlə -dan N-1-ə (N \leq 10000) qədər nömrələnmişdir. İki növ kənar mövcuddur: şəkildə hərfi ilə göstərilən geri kənarlar (məsələn, zirvəsindən zirvəsinə və ya zirvəsindən zirvəsinə) və hərfi ilə göstərilən irəli kənarlar (məsələn, -dən -yə və ya -dan -ə). Billi'nin proqramı əvvəlcə , , , zirvələrini ehtiva edən bir qraf üzərində işləyir. Sonra isə proqram mətndəki əmrlərin ardıcıllığına uyğun olaraq qrafı qurmalıdır. Hər bir əmr aşağıdakı formata malikdir:
burada və zirvələrin nömrələridir, isə sağdan sola yerinə yetirilən əməliyyatlar ardıcıllığıdır. Hər bir əməliyyat aşağıdakı simvollardan biri ilə təmsil olunur:

Burada qrafın zirvələrinin massividir. İlk əməliyyatın arqumenti zirvəsidir. və əməliyyatlarının nəticəsi digər bütün əməliyyatlar üçün arqumenti təmsil edən bir zirvədir. və əməliyyatları ən soldadır. Məsələn, əmr üçün əməliyyatlar belədir:
index0 = 4, index1 = 0
x = f(v[0]) // irəli, zirvə 3, x = 3 y = f(x) // irəli, yeni zirvə yaradır (4), y = 4 k(y) // açarı çap edir (4) V[4] = y // (4) zirvəsini v massivinə yerləşdirir
Bir zirvə yalnız əmri ilə v massivinə yerləşdirilir. Başlanğıcda massivində , , , açarları olan zirvələr var: v[0]=0, v[1]=1, v[2]=2, v[3]=3.
Proqramın girişi mətn faylından olur və fayl əmrlər ardıcıllığını ehtiva edir. Hər bir çap standart çıxışa sətirin əvvəlindən yazılmalıdır. Arada boş sətirlər yoxdur. Girişdə boşluqlar sərbəst şəkildə ola bilər. Giriş məlumatları faylın sonu ilə tamamlanır.
Aşağıdakı cədvəldə giriş və çıxış nümunəsi verilmişdir.

Nümunə 1