in_at_least_one_v2 = (a,b) => {
let res = [];
let c = a.concat([]).sort(numeric_compare);
let d = b.concat([]).sort(numeric_compare);
while (c.length > 0 && d.length > 0) {
if (c[0] < d[0]) { res.push(c.shift()); }
else if (d[0] < c[0]) { res.push(d.shift()); }
else if (c[0] == d[0]) { res.push(c.shift()); d.shift(); }
}
if (c.length > 0) { res = res.concat(c); }
if (d.length > 0) { res = res.concat(d); }
return res;
}