Cho 2 xâu ký tự \((S\)) và \((T\)) trong đó nếu xâu nào khác rỗng thì chỉ gồm các ký tự thuộc tập hợp {\(('U','L', 'R'\))}.
Xét một cây nhị phân vô hạn, mỗi nút trên cây có đúng một nút cha và hai nút con (nút cha của nút gốc là chính nó). Xuất phát từ nút gốc, ta có thể di chuyển trên cây đã cho nhờ xâu \((S\)) bằng cách duyệt lần lượt các ký tự của xâu \((S\)) theo quy tắc: \(('L'\)) là chuyển sang nút con trái, \(('R'\)) là sang nút con phải và \(('U'\)) là chuyển về nút cha. Quá trình này kết thúc tại nút nào đó \((X\)). Đương nhiên, nếu \((S\)) là xâu rỗng thì \((X\)) chính là nút gốc.
Ký hiệu \((\)Omega\()\) là tập hợp tất cả các xâu con của xâu \((T\)) (mỗi xâu con của \((T\)) nhận được từ \((T\)) bằng cách xoá bỏ một số tuỳ ý các ký tự của nó; xâu rỗng và bản thân \((T\)) đều là xâu con của \((T\))).
Yêu cầu
- Hãy cho biết số nút khác nhau trên cây có thể di chuyển đến được, bắt đầu từ nút \((X\)), bằng cách di chuyển trên cây nhờ tất cả các xâu trong \((\)Omega\()\).
Dữ liệu vào
- Dòng đầu ghi số nguyên \((T (T \le 50)\)), là số lượng bộ dữ liệu vào.
- Mỗi bộ dữ liệu vào gồm \(2\) dòng liên tiếp trong đó mỗi dòng bắt đầu bằng ký tự '#'' và tiếp theo là xâu \((S\)) (dòng đầu) hoặc xâu \((T\)) (dòng tiếp theo). Độ dài mỗi xâu \((S, T\)) đều không vượt quá \((100000 (10^5)\)).
Dữ liệu ra
- Ghi ra các số nguyên, mỗi số trên một dòng, là kết quả tìm được tương ứng với bộ dữ liệu vào. Các kết quả cần được lấy là dư của phép chia cho \((100000000 (10^8)\)).
Scoring
- Subtask \((1\)) (\((30\)%\()\) số điểm): tổng độ dài các xâu \((S\)) và \((T\)) không vượt quá \((22\)).
- Subtask \((2\)) (\((50\)%\()\) số điểm): xâu \((S\)) là xâu rỗng (độ dài bằng 0).
- Subtask \((3\)) (\((20\)%\()\) số điểm): Không cỏ ràng buộc gì thêm.
Input 1
5
#
#LL
#LR
#
#LU
#RLL
#
#
#LR
#RLUL
Output 1
3
1
6
1
8
Nhận xét