#include #include #include #include namespace mp = boost::multiprecision; using Bint = mp::cpp_int; using namespace std; using namespace atcoder; #define rep(i, n) for(int i=0;i<(n);++i) #define rep1(i, n) for(int i=1;i<=(n);i++) #define ll long long using mint = modint998244353; using P = pair; using lb = long double; using T = tuple; #ifdef LOCAL # include # define dbg(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else # define dbg(...) (static_cast(0)) #endif int main() { int n; cin >> n; vector a(n); vector b(n-1); rep(i,n) cin >> a[i]; rep(i,n-1) cin >> b[i]; ll now = 0; sort(a.begin(),a.end()); sort(b.begin(),b.end()); rep(i,n-1) now += abs(a[i]-b[i]); map> mp; mp[now].push_back(a[n-1]); for(int i=n-2;i>=0;i--){ now -= abs(b[i]-a[i]); now += abs(b[i]-a[i+1]); mp[now].push_back(a[i]); } dbg(mp); auto vs = (*mp.begin()).second; sort(vs.begin(),vs.end()); vs.erase(unique(vs.begin(),vs.end()),vs.end()); cout << vs.size() << endl; rep(i,vs.size()) { cout << vs[i] << (i+1==vs.size()?"\n":" "); } return 0; }