TheCyprioteMermaid

Publicat de: popa.bogdannnn
Memorie: 256.0MB/256.0MB
Timp de execuție: 1.0s
Operații IO: stdin/stdout

RO

EN

Cerință

În fiecare vară, Stelinuța merge în Cipru pentru o tabără de programare de 11 zile, iar în timpul petrecut acolo, îi place să meargă la înot și să facă snorkeling în mare.

Într-o zi, în timp ce făcea snorkeling, a găsit un colier de perle foarte interesant: un fir drept (neciclic) cu perle pe el. Inițial, toate perlele trebuiau să fie fie negre, fie albe. Totuși, unele perle erau atât de deteriorate încât nu mai putea distinge nici măcar culoarea lor originală.

Din această întâmplare, Stelinuța a avut o idee: imaginează-ți că poți elimina oricare două perle adiacente care au aceeași culoare de pe colier. Ea este curioasă să știe în câte moduri diferite ar fi putut arăta colierul original, astfel încât, după aplicarea acelei operațiuni de oricâte ori, să rămână fără nici o perlă pe colier. Deoarece răspunsul poate fi foarte mare, este suficient să-l găsească modulo $998.244.353$.

Date de intrare

Prima linie conține un șir format din caracterele “$0$”, “$1$” și “$?$”, descriind colierul pe care Stelinuța l-a găsit. Fiecare perlă este reprezentată astfel:

  • ”$1$”: perla este neagră,
  • ”$0$”: perla este albă,
  • ”$?$”: culoarea originală este necunoscută.

Lungimea șirului va fi cel puțin $1$ și de cel mult $2 \cdot 10^{5}$.

Date de ieșire

Să se afișeze un singur număr: Numărul de moduri în care putea să arate colierul modulo $998.244.353$.

Exemple

Intrare

01?1??

Ieșire

1