# Giải mã - DECODE
Cho dãy số nguyên dương $a_i$, $i = 1, 2, ..., n$. Dãy số này dùng để mã hóa các thông báo, mỗi thông báo có $n$ bit. Nếu dãy bit của thông báo là $t_1, t_2, ..., t_n$ ($t_i$ bằng $1$ hoặc $0$), thì nó được mã hóa thành số:
$S = t_1 * a_1 + t_2 * a_2 + ... + t_n * a_n$
## Yêu cầu:
Cho thông báo đã mã hóa và dãy số $a_i$. Hãy giải mã thông báo.
## Input (vào từ DECODE.INP):
- Dòng đầu tiên chứa số nguyên dương $n$ $(1 ≤ n ≤ 40)$
- Dòng thứ i trong n dòng sau chứa số nguyên $a_i$, tổng các $a_i$ không vượt quá $10^{16}$.
- Dòng thứ $n + 2$ chứa số nguyên $s$ - thông báo đã mã hóa, $s ≤ a_1 + a_2 + ... + a_n$.
- Dữ liệu đảm bảo bài toán luôn có kết quả.
## Output (xuất ra DECODE.OUT):
- Dòng duy nhất chứa thông báo đã giải mã dưới dạng chuỗi bit.
- Nếu có nhiều kết quả khác nhau, xuất kết quả là chuỗi bit có thứ tự từ điển nhỏ nhất.
## Ví dụ:
| DECODE.INP | DECODE.OUT | Giải thích |
| -------- | -------- | -------- |
| 3 <br /> 1 <br /> 2 <br /> 3 <br /> 3 | 001 | Chuỗi 001 thỏa yêu cầu bài toán. Chuỗi 110 không hợp lệ vì không có thứ tự từ điển nhỏ nhất. |
## Subtask:
- $40\%$ số test tương ứng với $40\%$ số điểm có $n ≤ 20$
- $60\%$ số test còn lại tương ứng với $60\%$ số điểm không có ràng buộc gì thêm.