#ifdef ONLINE_JUDGE #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #endif #include #include using namespace std; using namespace atcoder; using ll = long long; using ld = long double; using mint = modint998244353; using mint2 = modint1000000007; #define each(a, ...) for(auto& __VA_ARGS__ : a) #define Each(a, ...) for(auto __VA_ARGS__ : a) #define sz(a) (ll)a.size() #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() template inline bool chmax(T &a, U &&b) { if (a >= (T)b) return false; a = b; return true; } template inline bool chmin(T &a, U &&b) { if (a <= (T)b) return false; a = b; return true; } template istream &operator>>(istream &is, pair &p) { return is >> p.first >> p.second; } template requires requires(T t) { begin(t); end(t); } && (!is_same_v) istream &operator>>(istream &is, T &v) { for (auto &x : v) is >> x; return is; } template inline void in(T&... a) { (cin >> ... >> a); } template ostream &operator<<(ostream &os, const pair &p) { return os << p.first << ' ' << p.second; } template requires requires(T t) { begin(t); end(t); } && (!is_same_v) ostream &operator<<(ostream &os, const T &v) { for (auto it = begin(v); it != end(v); it++) os << (it == begin(v) ? "" : " ") << *it; return os; } void out() { cout << '\n'; } template inline void out(T &&a, U&&... b) { cout << a; ((cout << ' ' << b), ...); cout << '\n'; } template inline void print(T&&... a) { (cout << ... << a); } template inline bool yn(bool a, T &&b = "Yes", U &&c = "No") { if (a) out(b); else out(c); return a; } constexpr ll inf = LLONG_MAX >> 2; constexpr array, 4> dxdy4 = {{{-1, 0}, {0, -1}, {1, 0}, {0, 1}}}; constexpr array, 8> dxdy8 = {{{-1, 0}, {-1, -1}, {0, -1}, {1, -1}, {1, 0}, {1, 1}, {0, 1}, {-1, 1}}}; void Main() { ll N,M;in(N,M); vectorU(N),T(M);in(U,T); bitset<200000>bs; each(U,Ui)bs[Ui]=1; each(T,Ti)bs|=bs<