import
java.io.*;
import
java.util.*;
class
GFG {
static
void
minSizeArr(
int
A[],
int
N,
int
K)
{
int
sum =
0
;
for
(
int
i =
0
; i < N; i++)
sum += A[i];
if
(K > sum) {
System.out.print(-
1
);
return
;
}
if
(K == sum) {
for
(
int
i =
0
; i < N; i++) {
System.out.print(A[i] +
" "
);
}
return
;
}
int
tar = sum - K;
HashMap<Integer, Integer> um =
new
HashMap<Integer, Integer>();
um.put(
0
, -
1
);
int
left =
0
, right =
0
;
int
cur =
0
, maxi = -
1
;
for
(
int
i =
0
; i < N; i++) {
cur += A[i];
if
(um.containsKey(cur - tar)
&& i - um.get(cur - tar) > maxi) {
maxi = i - um.get(cur - tar);
right = i;
left = um.get(cur - tar);
}
if
(!um.containsKey(cur))
um.put(cur, i);
}
if
(maxi == -
1
)
System.out.println(-
1
);
else
{
for
(
int
i =
0
; i <= left; i++)
System.out.print(A[i] +
" "
);
for
(
int
i =
0
; i < right; i++)
System.out.print(A[N - i -
1
] +
" "
);
}
}
public
static
void
main (String[] args) {
int
N =
7
;
int
A[] = {
3
,
2
,
1
,
1
,
1
,
1
,
3
};
int
K =
10
;
minSizeArr(A, N, K);
}
}