#include <bits/stdc++.h>
using namespace std;
const double eps(1e-8);
int n, m, a, b;
int val[110000];
vector<int> v[110000];
bool press[110000];
int ans[110000];
queue<int> q;
int main() {
  scanf("%d %d", &n, &m);
  for (int i = (1); i <= (m); ++i) {
    scanf("%d %d", &a, &b);
    v[a].push_back(b);
    v[b].push_back(a);
  }
  for (int i = (1); i <= (n); ++i) scanf("%d", &val[i]);
  for (int i = (1); i <= (n); ++i) {
    press[i] = true;
    ans[i] = v[i].size() + 1;
    if (ans[i] == val[i]) q.push(i);
  }
  int sum = n;
  while (!q.empty()) {
    int k = q.front();
    q.pop();
    press[k] = false;
    ans[k]--;
    sum--;
    for (int j = 0; j < (v[k].size()); ++j) {
      ans[v[k][j]]--;
      if (ans[v[k][j]] == val[v[k][j]]) {
        q.push(v[k][j]);
      }
    }
  }
  cout << sum << endl;
  if (sum == 0) return 0;
  bool flag = false;
  for (int i = (1); i <= (n); ++i) {
    if (press[i]) {
      if (flag) {
        printf(" ");
      }
      flag = true;
      printf("%d", i);
    }
  }
  cout << endl;
}
