Xét tập hợp \(S\) bao gồm tất cả những xâu ký tự chỉ chứa đúng \(m\) ký tự X
, \(n\) ký tự Y
, và \(p\) ký tự Z
. Bạn hãy viết chương trình in ra xâu có thứ tự từ điển nhỏ thứ \(k\) trong tập \(S\).
Input:
- Dòng đầu chứa ba số nguyên dương \(m\), \(n\), \(p\).
- Dòng tiếp theo chứa số nguyên dương \(Q\) thể hiện số câu hỏi bạn cần trả lời \((1\le Q\le 100)\).
- Mỗi dòng trong \(Q\) dòng tiếp theo chứa một số nguyên dương \(k\) \(\left(1\le k\le |S|\right)\).
Output:
- In ra \(Q\) dòng là câu trả lời cho \(Q\) câu hỏi tương ứng.
Ràng buộc:
- \(50\%\) số test ứng với \(50\%\) số điểm có \(1\le m,n,p\le 5\).
- \(50\%\) số test còn lại ứng với \(50\%\) số điểm có \(6\le m,n,p\le 10\).
Ví dụ
Sample input 01
1 1 1
6
1
2
3
4
5
6
Sample output 01
XYZ
XZY
YXZ
YZX
ZXY
ZYX
Giải thích
Tập \(S\) chứa đúng \(6\) xâu: XYZ
, XZY
, YXZ
, YZX
, ZXY
, và ZYX
(liệt kê theo thứ tự từ điển).
Sample input 02
4 3 5
4
1
10
1000
27720
Sample output 02
XXXXYYYZZZZZ
XXXXYZYZZZYZ
XXYZYZXZXZYZ
ZZZZZYYYXXXX