Tiến sĩ Nefario sở hữu một mã ~\text{ADN}~ được biểu thị dưới dạng một xâu ~S~ gồm các kí tự ~\text{latinh}~ in hoa (~A,B,C,\dots Z~) tương ứng với ~26~ loại nuclêôtít, Nefario sẽ thực hiện thao tác sau một số lần (có thể không thực hiện lần nào):
Chọn một hoặc nhiều kí tự trong xâu ~S~ (tối đa ~25~ kí tự phân biệt, có thể chọn một kí tự nhiều lần), ghép các kí tự được chọn thành xâu mới ~T~.
Xóa tất cả các kí tự vừa chọn khỏi ~S~.
Thêm kí tự có thứ tự từ điển nhỏ nhất không tồn tại trong xâu ~T~ vào đầu xâu ~S~.
Tiến sĩ Nefario muốn biết số lượng xâu ~S~ phân biệt sau khi thực hiện các thao tác này trên ~S~, bạn hãy giúp Nefario trả lời câu hỏi này nhé.
Hai xâu ~S~ và ~T~ được gọi là phân biệt với nhau khi và chỉ khi số lần xuất hiện của một kí tự ~c~ bất kì trong hai xâu là khác nhau.
INPUT
Một dòng duy nhất gồm xâu ~S~ gồm các kí tự ~\text{latinh}~ in hoa (~|S|\le 100~).
OUTPUT
Một dòng duy nhất gồm số lượng xâu ~S~ phân biệt sau các thao tác bất kì. Kết quả được in ra sau khi ~\pmod{998244353}~.
SAMPLE INPUT 1
ABB
SAMPLE OUTPUT 1
12
SAMPLE INPUT 2
BC
SAMPLE OUTPUT 2
8
GIẢI THÍCH
Tại test mẫu thứ ~2~ ta có thể tạo được các xâu ~\text{BC},\text{AC},\text{B},\text{BA},\text{AA},\text{A},\text{C},\text{BB}~. Ví dụ trên xâu ban đầu ~\text{BC}~ ta chọn kí tự ~S_1~ và loại bỏ, thêm vào kí tự ~A~ (vì ~A~ là kí tự có thứ tự từ điển nhỏ nhất không tồn tại trong xâu ~T='B')~ được xâu ~\text{AC}~.
SUBTASKS
Subtask | Điểm | Ràng buộc |
---|---|---|
1 | ~250~ | Độ dài xâu ~S~ không quá ~4~. |
2 | ~500~ | Độ dài xâu ~S~ không quá ~20~. |
3 | ~750~ | Xâu ~S~ chỉ chứa ký tự ~A~ và ~B~. |
4 | ~1500~ | Không có ràng buộc gì thêm. |
Bình luận