import java.util.Scanner;
public class MinimumMoneyNeeded {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int W = sc.nextInt();
int[] wt = new int[n];
for(int i=0;i<n;i++) {
wt[i] = sc.nextInt();
}
int[] val = new int[n];
for(int i=0;i<n;i++) {
val[i] = wt[i];
}
System.out.println(knapsack(W,wt,val,n));
}
public static int knapsack(int W,int[] wt,int[] val,int n) {
int[][] K = new int[n+1][W+1];
for(int i=0;i<=n;i++) {
for(int w=0;w<=W;w++) {
if(i==0) {
K[i][w] = Integer.MAX_VALUE;
}
else if(w==0) {
K[i][w] = 0;
}
else if(wt[i-1]<=w) {
K[i][w] = Math.min(val[i-1]+K[i-1][w-wt[i-1]], K[i-1][w]);
}
else {
K[i][w] = K[i-1][w];
}
}
}
return K[n][W];
}
}
//sir I have made little changes to 0-1 Knapsack code for the given code but I’m getting wrong answer