#ifndef hari64 #include #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #define debug(...) #else #include "util/viewer.hpp" #define debug(...) viewer::_debug(__LINE__, #__VA_ARGS__, __VA_ARGS__) #endif // clang-format off using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; template using vc = vector; template using vvc = vector>; template using vvvc = vector>; using vi = vc; using vll = vc; using vpii = vc; using vpll = vc; using vvi = vc; using vvll = vc; using vvpi = vc; using vvpll = vc; constexpr int INF = 1001001001; constexpr long long INFll = 1001001001001001001; template bool chmax(T& a, const T& b) { return a < b ? a = b, 1 : 0; } template bool chmin(T& a, const T& b) { return a > b ? a = b, 1 : 0; } // clang-format on int main() { cin.tie(0); ios::sync_with_stdio(false); int N, K; cin >> N >> K; vc isDart(N + 1, 0); isDart[0] = 1; int M1; cin >> M1; vector As(M1); for (int i = 0; i < M1; i++) { cin >> As[i]; isDart[As[i]] = -INF; } int M2; cin >> M2; vector Bs(M2); for (int i = 0; i < M2; i++) { cin >> Bs[i]; isDart[Bs[i]] = 1; } for (int i = 0; i < N; i++) { if (isDart[i] > 0) { if (i + 1 <= N) isDart[i + 1] += 1; if (i + K <= N) isDart[i + K] += 1; } } debug(isDart); cout << (isDart[N] ? "Yes" : "No") << endl; return 0; }