veverite

Time limit: 0.2s Memory limit: 256MB Input: veverite.in Output: veverite.out

Două veverițe gemene au descoperit un depozit de alune care are o formă foarte ciudată. Mai precis, depozitul are forma unei matrice N×NN \times N cu NN impar. Fiecare poziție din matrice este o cameră și în fiecare cameră se află câte o alună.

Camerele sunt numerotate cu numărul de linie și numărul de coloană. Prima veveriță, pe numele ei Chip, se găsește inițial în camera (1,1)(1, 1), iar a doua, pe numele ei Dale, în camera (N,N)(N, N). Veverițele vor să culeagă toate alunele și să se întâlnească în camera din centrul depozitului. Pentru aceasta, ele vor parcurge camerele trecând din una în alta fără să treacă vreodată printr-o cameră prin care a mai trecut una dintre ele. Ele se pot deplasa dintr-o cameră în alta (evident, fără să iasă din depozit și fără să intre într-o cameră deja vizitată). Când trece dintr-o cameră într-alta, Chip își notează traseul astfel:

  • Dacă merge spre camera din dreapta, din camera (L,C)(L, C) în camera (L,C+1)(L, C+1), notează trecerea cu 0.
  • Dacă merge spre camera din stânga, din camera (L,C)(L, C) în camera (L,C1)(L, C-1), notează trecerea cu 1.
  • Dacă merge spre camera de sus, din camera (L,C)(L, C) în camera (L1,C)(L-1, C), notează trecerea cu 2.
  • Dacă merge spre camera de jos, din camera (L,C)(L, C) în camera (L+1,C)(L+1, C), notează trecerea cu 3.

Interesant este că la orice trecere a lui Chip dintr-o cameră în alta, Dale se va muta exact în sens opus, adică:

  • Dacă Chip merge spre dreapta, Dale merge spre stânga.
  • Dacă Chip merge spre stânga, Dale merge spre dreapta.
  • Dacă Chip merge în sus, Dale merge în jos.
  • Dacă Chip merge în jos, Dale merge în sus.


Meticulos, Chip își calculează și își notează în ordine lexicografică toate traseele posibile prin care pot fi culese toate alunele din depozit. De exemplu, pentru N=9N = 9, traseul de pe poziția P=12345P = 12345 este notat astfel: 0000311113333333000211200000022213312213 și corespunde schemei de mai jos:

Cerință

Cunoscând NN, să se răspundă la QQ întrebări de forma: „Ce traseu a notat Chip pe poziția PP?”.

Date de intrare

Fișierul de intrare conține pe prima linie numerele NN și QQ cu semnificația de mai sus. Pe următoarele QQ linii se găsesc întrebările. Astfel, pe linia i+1i+1 se găsește un singur număr PiP_i.

Date de ieșire

Fișierul de ieșire conține QQ linii. Fiecare linie conține un șir de caractere 0, 1, 2 sau 3, neseparate prin spațiu. Șirul de pe linia ii va conține codificarea traseului lui Chip corespunzător poziției PiP_i.

Restricții

  • 3N93 \leq N \leq 9 și NN este impar.
  • 1Q1 0001 \leq Q \leq 1\ 000.
  • 1PimaxP1 \leq P_i \leq maxP, unde maxPmaxP este numărul maxim de trasee posibile pentru NN.
# Punctaj Restricții
1 4 N=3N = 3
2 7 N=5N = 5
3 8 N=7,Pi10N = 7, P_i \leq 10
4 13 N=7,Pi564N = 7, P_i \leq 564
5 19 N=9,Pi10N = 9, P_i \leq 10
6 21 N=9,Pi1 000N = 9, P_i \leq 1\ 000
7 28 N=9,Pi93 866N = 9, P_i \leq 93\ 866

Exemple

veverite.in

5 3
1
2
3

veverite.out

000031111300
000031303112
000033311120


veverite.in

9 1
12345

veverite.out

0000311113333333000211200000022213312213

Log in or sign up to be able to send submissions!