#include <stdio.h>
//解题思路:镶嵌循环,计算b数组中每一个子数组和大小,每次内循环都要与a数组之和做差,再和上次的差比较
// 如果更小记录此时子数组的开头和结尾的下标。
int main() {
int n, m, sum1 = 0, ps = 0, min = 1000000, bs = 0;
scanf("%d %d", &n, &m);
int a[100] = {0}, b[100] = {0};
for (int i = 0; i < n; i++) {
scanf("%d ", &a[i]);
sum1 += a[i];
}
for (int i = 0; i < m; i++) {
scanf("%d ", &b[i]);
}
for (int i = 0; i < m; i++) {//镶嵌循环
int sum2 = 0;
for (int k = 0; k < m - i; k++) {
sum2 += b[i + k];//从b[i]开始累和
int gg = sum1 - sum2;//记录每次子数组之和与a数组之和的差值
if (gg < 0)
gg = -gg;//相当于做差值的绝对值
if (min > gg) {//与上一次循环的差值作比较
ps = i;
bs = k + i;//如果更小记录数组的前后下标
min = gg;//并重置记录此次差值大小
}
}
}
for (int i = ps; i <= bs; i++) {//根据下标打印子数组
printf("%d ", b[i]);
}
return 0;
}