func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m;   vector<int> G[100000];   int a[100000];   int b[100000];   int c[100000];   void dfs(int v) {     b[v]++;     c[v] = 1;     for (int i = 0; i < (int)(G[v].size()); i++) {       int w = G[v][i];       if (++b[w] == a[w]) dfs(w);     }   }   int main() {     cin >> n >> m;     for (int i = 0; i < (int)(m); i++) {       int a, b;       cin >> a >> b;       --a, --b;       G[a].push_back(b);       G[b].push_back(a);     }     for (int i = 0; i < (int)(n); i++) cin >> a[i];     for (int i = 0; i < (int)(n); i++) {       if (a[i] == b[i]) dfs(i);     }     cout << accumulate(c, c + n, 0) << endl;     for (int i = 0; i < (int)(n); i++)       if (c[i]) cout << i + 1 <<    ;     cout << endl;     return 0;   }   