Zadanie

Čavojov kód

Počet bodov: 25, časový limit: 300ms

Čavoj vám poslal zakódovanú správu. Chcete ju odkódovať. Zakódovaný reťazec sa skladá z blokov. Bloky sú binárne reťazce. Každý blok vznikol zakódovaním nejakého čísla. Blokom dĺžky \(k \geq 1\) dokážeme zakódovať celé číslo od \(0\) po \(2^k - 1\).

Vstup a výstup

V prvom riadku vstupu je celé číslo \(k\) - dĺžka bloku. Všetky bloky sú teda rovnako dlhé. Platí, že \(1 \leq k \leq 14\).

V druhom riadku je reťazec \(s\) zložený zo znakov \(0\) a \(1\) predstavujúci zakódovanú správu. Jeho dĺžka je násobok \(k\) a zároveň je najviac \(200\,000\).

Nasleduje \(2^k\) riadkov. V \(i\)-tom z týchto riadkov sa nachádza binárny reťazec \(t_i\) dĺžky \(k\). To znamená, že číslo \(i\) sa zakóduje na \(t_i\). Prvý riadok teda predstavuje kód pre číslo \(0\), druhý pre číslo \(1\) a tak ďalej. Môžete predpokladať, že všetky \(t_i\) sú navzájom rôzne.

Odkódovaná správa je reťazec znakov, ktorý dostanete tak, že odkódujete \(s\).

Vypíšte odkódovanú správu.

Príklad

Input:

3
100011100111100010111001111000
110
011
100
111
101
001
000
010

Output:

2123273536

Prvé 3 znaky reťazca \(s\)\(100\). To sa nachádza v riadku reprezentujúcom číslo 2. Prvé číslo výstupu teda bude 2.

Pre odovzdávanie sa musíš prihlásiť.