• Time limit: 1.00 s
  • Memory limit: 512 MB

Tehtäväsi on muodostaa n \times m -ruudukko, joka sisältää kaikki kokonaisluvut 1,2,\dots, n \cdot m. Ruudukko tulee muodostaa niin, että missään ruudukon kohdassa ei ole vierekkäin (vaaka- tai pystysuunnassa) kahta peräkkäistä lukua. Toisin sanoen jos luvut x ja y ovat vierekkäin ruudukossa, tulee päteä |x-y| \neq 1.

Esimerkiksi kun ruudukon koko on 3 \times 4, sen tulee sisältää kokonaisluvut 1,2,\dots,12. Tässä on yksi mahdollinen tapa muodostaa ruudukko:

Syöte

Ensimmäisellä rivillä on kokonaisluku t: testien määrä.

Jokaisella seuraavalla rivillä on kaksi kokonaislukua n ja m: ruudukon korkeus ja leveys.

Tuloste

Tulosta ensin YES, jos ruudukon voi muodostaa, ja NO muuten.

Jos ruudukon voi muodostaa, tulosta vielä esimerkki ruudukosta. Voit tulostaa minkä tahansa kelvollisen ratkaisun.

Esimerkki

Syöte:

5
1 5
2 2
1 3
3 4
4 2

Tuloste:

YES
1 4 2 5 3
NO
NO
YES
10 7 5 2
3 1 9 12
8 4 11 6
YES
1 7
3 5
6 8
2 4

Arvostelu

Jokaisessa testissä 1 \le t \le 100 ja 1 \le n,m \le 10. Saat tehtävästä 100 pistettä, jos koodisi tuottaa oikean tuloksen kaikissa testeissä.