Parada

Time limit: 0.1s Memory limit: 64MB Input: parada.in Output: parada.out

Cerință

La parada organizată cu ocazia zilei naționale, elevii liceelor mitilare din orașele AA și BB au fost mai întâi aranjați în coloană în ordinea crescătoare a înălțimilor (o coloană cu elevii din orașul AA și una cu elevii din orașul BB).
Ulterior ei urmează să fie rearanjați astfel încât să formeze toți o singură coloană care să îndeplinească următoarele condiții:

  • Elevii să fie aranjați în ordine crescătoare;
  • Oricare doi elevi să își păstreze ordinea relativă de la aranjarea inițială (dacă elevii xx și yy erau în același oraș și xx era așezat înaintea lui yy, în coloana reunită trebuie, de asemenea ca xx să fie înaintea lui yy, evident, nu neapărat imediat înainte);

Se cere să calculăm numărul de variante de rearanjare. Două variante diferă dacă există cel puțin o poziție pe care în prima variantă era uașezat nn elev și în a doua variantă era așezat alte elev.

Date de intrare

Pe prima linie a fișierului parada.in se află un număr nn reprezentând numărul de elevi din orașul AA. Pe linia a doua se află nn numere naturale nenule, separate prin spațiu, în ordine crescătoare, reprezentând înălțimile elevilor din orașul AA. Pe linia a treia se află un număr mm reprezentând numărul de elevi din orașul BB. Pe linia a patra se află mm numere naturale nenule, separate prin spații, în ordine crescătoare reprezentând înălțimile elevilor din orașul BB.

Date de ieșire

Fișierul parada.out va conține restul împărțirii valorii cerute la numărul 1 000 000 0071 \ 000 \ 000 \ 007.

Restricții și precizări

  • 1n,m2 0001 \leq n, m \leq 2 \ 000;
  • Înălțimile elevilor sunt numere naturale nenule de maxim 99 cifre.
  • Pentru teste în valoare de 6666 puncte înalțimile sunt numere naturale nenule de maxim 66 cifre;
  • Pentru teste in valoare de 3434 puncte numerele care reprezintă înălțimile elevilor au cel puțin 88 cifre;
  • Pentru teste in valoare de 3333 puncte elevii din același oraș au înălțimi distincte.

Exemplul 1

parada.in

5
1 3 3 3 4
3
3 3 5

parada.out

10

Explicație

1(A1) 3(A2) 3(A3) 3(A4) 3(B1) 3(B2) 4(A5) 5(B3)
1(A1) 3(A2) 3(A3) 3(B1) 3(A4) 3(B2) 4(A5) 5(B3)
1(A1) 3(A2) 3(B1) 3(A3) 3(A4) 3(B2) 4(A5) 5(B3)
1(A1) 3(B1) 3(A2) 3(A3) 3(A4) 3(B2) 4(A5) 5(B3)
1(A1) 3(A2) 3(A3) 3(B1) 3(B2) 3(A4) 4(A5) 5(B3)
1(A1) 3(A2) 3(B1) 3(A3) 3(B2) 3(A4) 4(A5) 5(B3)
1(A1) 3(B1) 3(A2) 3(A3) 3(B2) 3(A4) 4(A5) 5(B3)
1(A1) 3(A2) 3(B1) 3(B2) 3(A3) 3(A4) 4(A5) 5(B3)
1(A1) 3(B1) 3(A2) 3(B2) 3(A3) 3(A4) 4(A5) 5(B3)
1(A1) 3(B1) 3(B2) 3(A2) 3(A3) 3(A4) 4(A5) 5(B3)

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