func_code_string: #include <bits/stdc++.h>   using namespace std;   const int sz = 1500000;   const long long MAX = 10000000000000000;   template <typename T>   T abs(T a) {     return a < 0 ? -a : a;   }   int main() {     int n, m;     cin >> n >> m;     vector<vector<int> > graph(n);     for (long long i = 0; i < m; i++) {       int u, v;       cin >> u >> v;       graph[u - 1].push_back(v - 1);       graph[v - 1].push_back(u - 1);     }     vector<int> val(n, 0);     set<int> q;     vector<int> flag(n, 0);     vector<int> a(n);     for (long long i = 0; i < n; i++) {       cin >> a[i];       if (!a[i]) {         q.insert(i);       }     }     vector<int> ans;     while (!q.empty()) {       int top = *q.begin();       q.erase(q.begin());       if (flag[top]) {         return 1;       }       val[top]++;       flag[top] = true;       ans.push_back(top);       for (vector<int>::iterator i = graph[top].begin(); i != graph[top].end();            i++) {         val[*i]++;         if (val[*i] == a[*i]) {           q.insert(*i);         }       }     }     cout << ans.size() << endl;     for (vector<int>::iterator i = ans.begin(); i != ans.end(); i++) {       cout << (*i) + 1 <<    ;     }     return 0;   }   