import
java.io.*;
import
java.lang.*;
import
java.util.*;
public
class
GFG {
static
int
ans = Integer.MAX_VALUE;
static
int
mini = Integer.MAX_VALUE;
static
void
findClosestTarget(
int
i,
int
curr,
int
B[],
int
M,
int
K)
{
if
(Math.abs(curr - K) < mini) {
mini = Math.abs(curr - K);
ans = curr;
}
if
(Math.abs(curr - K) == mini) {
ans = Math.min(ans, curr);
}
if
(i >= M)
return
;
findClosestTarget(i +
1
, curr + B[i], B, M, K);
findClosestTarget(i +
1
, curr +
2
* B[i], B, M, K);
findClosestTarget(i +
1
, curr, B, M, K);
}
static
int
findClosest(
int
A[],
int
B[],
int
N,
int
M,
int
K)
{
for
(
int
i =
0
; i < N; i++) {
findClosestTarget(
0
, A[i], B, M, K);
}
return
ans;
}
public
static
void
main(String[] args)
{
int
A[] = {
2
,
3
};
int
B[] = {
4
,
5
,
30
};
int
N = A.length;
int
M = B.length;
int
K =
18
;
System.out.print(findClosest(A, B, N, M, K));
}
}