Bajtek은 블록을 아주 많이 가지고 있으며, 블록을 가지고 노는 것을 무척 좋아합니다. 하지만 블록을 담을 상자는 하나뿐이고, 그 상자는 너무 작아서 모든 블록을 담을 수는 없습니다.
Bajtek은 정리를 좋아하는 아이라서, 놀고 난 뒤에는 항상 블록을 상자에 담아 선반 위에 올려 둡니다.
모든 블록의 크기는 같기 때문에, 어떤 블록들을 고르더라도 상자에는 최대 k개까지만 담을 수 있습니다. Bajtek은 가능하면 무거운 블록을 상자에 담고 가벼운 블록만 바닥에 남기고 싶어 합니다. 그런데 가끔은 상자가 너무 무거워져서 선반에 올릴 수 없을 때가 있습니다. Bajtek은 아직 어린 아이니까요. 그래서 그는 자신이 들 수 있는 한도 안에서, 담은 블록들의 질량 합이 최대가 되도록 상자를 채우려고 합니다.
들 수 없을 만큼 무겁게 담아 다시 싸는 일에 지친 Bajtek을 위해, 블록을 어떻게 담는 것이 최적인지 알려 주는 프로그램을 작성하세요.
첫째 줄에 세 정수 n, k, s (k≤n≤30, 1≤k≤12, 1≤s≤106)가 공백으로 구분되어 주어집니다. 각각 전체 블록의 개수, 상자에 담을 수 있는 최대 블록 개수, 그리고 Bajtek의 힘(그가 들 수 있는 상자의 최대 질량)을 뜻합니다.
둘째 줄에는 각 블록의 질량을 나타내는 n개의 정수 mi (1≤mi≤106)가 공백으로 구분되어 주어집니다.
상자 자체의 질량은 0으로 간주합니다.
Bajtek이 들 수 있는, 블록이 담긴 상자의 최대 질량 M을 한 줄에 정수 하나로 출력합니다.
상자에 블록을 하나도 담지 않으면 질량이 0이고 이는 항상 들 수 있으므로, 정답은 항상 0 이상입니다. 예를 들어 s=5이고 최대 2개까지 담을 수 있으며 블록의 질량이 각각 1,3,6이라면, 질량이 1과 3인 블록을 담아 합 4를 만드는 것이 최적입니다. 질량 6인 블록은 하나만으로도 5를 넘고, 1+6이나 3+6 같은 조합도 모두 5를 초과하기 때문입니다.