#include <bits/stdc++.h>
using namespace std;
const int MN = 1000 * 100 + 10;
bitset<MN> cur, good;
bool was[MN];
vector<pair<char, int> > sp;
vector<int> leader;
int main() {
  int n, m;
  scanf("%d%d\n", &n, &m);
  sp.resize(m);
  for (int i = 0; i < m; i++) {
    scanf("%c %d\n", &sp[i].first, &sp[i].second);
  }
  cur.reset();
  good.set();
  for (int i = 0; i < sp.size(); i++) {
    if (sp[i].first == '-' && !was[sp[i].second]) cur.set(sp[i].second, 1);
    was[sp[i].second] = true;
  }
  if (cur.any()) good &= cur;
  for (int i = 0; i < sp.size(); i++) {
    if (sp[i].first == '+') {
      cur.set(sp[i].second, 1);
    } else {
      cur.set(sp[i].second, 0);
    }
    if (cur.any()) {
      good &= cur;
    }
  }
  for (int i = 1; i <= n; i++) {
    if (!was[i]) good.set(i, 1);
  }
  for (int i = 1; i <= n; i++) {
    if (good.test(i)) leader.push_back(i);
  }
  cout << leader.size() << endl;
  for (int i = 0; i < leader.size(); i++) printf("%d ", leader[i]);
  cout << endl;
  return 0;
}
