题目描述
Hint
In solving this problem, the following may be referred to. Shows how to convert an integer value to a string. Assign value as a string to str.
For C
include <stdio.h>
int main () {
int value = 123; // Convert this value to a string
char str [6]; // This variable contains a string of value
sprintf (str, "% d", value);
return 0;
}
For C ++
include <sstream>
using namespace std;
int main () {
int value = 123; // Convert this value to a string
string str; // This variable contains a string of value
stringstream ss;
ss << value;
ss >> str;
return 0;
}
For JAVA
class Main {
public static void main (String args []) {
int value = 123; // Convert this value to a string
String str = new Integer (value) .toString (); // This variable contains a string of value
}
}
Constraints
The input satisfies the following conditions.
- 1 ≤ n ≤ 5
- 0 ≤ m ≤ 500
- 1 ≤ ci ≤ 1000 (0 ≤ i ≤ 9)
Input
n m
c0 c1 c2 ... c9
Two integers n and m are given on the first line, separated by blanks. n is the number of plates to purchase, and m is the amount of money you have.
On the second line, 10 integers are given, separated by blanks. ci (i is 0 or more and 9 or less) represents the price of the plate with i written in the table.
Output
Buy n plates and put them in any order to output the minimum number of values you can.
If some 0s are included at the beginning, output as it is. (For example, if the answer is 0019, output 0019 as it is instead of removing the leading 0 to make it 19.) If you cannot purchase n plates with the amount of money you have, output "NA".
Examples
Input
1 10
1 2 3 4 5 6 7 8 9 10
Output
0
Input
3 10
8 4 5 3 5 6 9 10 11 2
Output
119
Input
5 30
25 51 32 9 2 1 10 2 5 10
Output
04555
Input
5 100
101 101 101 101 101 101 101 101 101 101
Output
NA
输入格式
见题面
输出格式
见题面