package main import ( "bufio" "fmt" "log" "math" "os" "strconv" "strings" ) var sc = bufio.NewScanner(os.Stdin) func nextInt() int { sc.Scan() i, err := strconv.Atoi(sc.Text()) if err != nil { panic(err) } return i } func nextLine() string { sc.Scan() return sc.Text() } func main() { cols := strings.Split(nextLine(), " ") n, err := strconv.Atoi(cols[0]) if err != nil { log.Fatal(err) } k, err := strconv.Atoi(cols[1]) if err != nil { log.Fatal(err) } var a []int for i := 0; i < n; i++ { m := nextInt() a = append(a, m) } ma := 0 for s := 0; s < (1 << uint(n)); s++ { count := 0 for i := 0; i < n; i++ { if (s & (1 << uint(i))) > 0 { count += a[i] } } if count <= k { ma = int(math.Max(float64(ma), float64(count))) } } fmt.Println(ma) }