func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m, k, x[100005], pn, st;   pair<int, pair<int, int> > p[100005];   priority_queue<pair<int, pair<int, int> > > q, qq;   int main() {     scanf( %d%d , &n, &m);     for (int a = (1); a <= (n); a++)       for (int b = (1); b <= (m); b++)         p[pn++] = make_pair(a + b, make_pair(a, b));     sort(p, p + pn);     scanf( %d , &k);     for (int a = (0); a < (k); a++) scanf( %d , x + a);     sort(x, x + k);     for (int a = (0); a < (k); a++) {       while (st < pn && p[st].first <= x[a]) {         q.push(make_pair(p[st].second.first + m + 1 - p[st].second.second,                          p[st].second));         st++;       }       if (q.empty()) {         printf( NO n );         return 0;       }       q.pop();     }     while (!q.empty()) {       qq.push(q.top());       q.pop();     }     while (st < pn) {       qq.push(make_pair(p[st].second.first + m + 1 - p[st].second.second,                         p[st].second));       st++;     }     scanf( %d , &k);     for (int a = (0); a < (k); a++) scanf( %d , x + a);     sort(x, x + k, greater<int>());     for (int a = (0); a < (k); a++) {       if (qq.top().first > x[a]) {         printf( NO n );         return 0;       }       qq.pop();     }     printf( YES n );     return 0;   }   