#include<bits/stdc++.h>
using namespace std;
char in[100], out[100];

int n, k, t, ans, A[30];
void f(int c, int ct, int cs){
	if(c==n){
		if(ct==k and cs%t==0){
			ans = max(ans,cs);
		}
		return;
	}
	f(c+1,ct+1,cs+A[c]);
	f(c+1,ct,cs);
	return;
}
int main(){
	int i;
	for(int I=1;I<=20;I++){
		//scanf("%d %d %d", &n, &k, &t);
		n = 20;
		k = rand()%n+1;
		t = rand()%100+1;
		sprintf(in,".%d.in",I);
		freopen(in,"w",stdout);
		printf("%d %d %d\n",n,k,t);
		for(i=0;i<n;i++){
			A[i]=rand()%100+1;
			printf("%d",A[i]);
			if(i==n-1) printf("\n");
			else printf(" ");	
		} 
		ans = 0;
		f(0, 0, 0);
		sprintf(in,".%d.out",I);
		freopen(in,"w",stdout);
		printf("%d", ans);
	}
}
