#include <bits/stdc++.h>
using namespace std;
int n, m;
int vis[100010], h[100100];
vector<int> res;
set<int> q, off;
int a[100100];
char s[100010][2];
int main() {
  int i, j, z, T, d;
  while (cin >> n >> m) {
    q.clear();
    res.clear();
    off.clear();
    memset(vis, 0, sizeof(vis));
    for (i = 1; i <= m; i++) {
      scanf("%s%d", s[i], &a[i]);
      if (s[i][0] == '-' && !vis[a[i]]) q.insert(a[i]);
      if (s[i][0] == '+' && !vis[a[i]]) off.insert(a[i]);
      vis[a[i]]++;
    }
    memset(vis, 0, sizeof(vis));
    if (q.size() != 0) {
      set<int>::iterator it;
      for (it = off.begin(); it != off.end(); it++) vis[*it]++;
      off.clear();
    }
    for (i = 1; i <= m; i++) {
      if (s[i][0] == '+' && q.size() != 0) {
        set<int>::iterator it;
        for (it = off.begin(); it != off.end(); it++) vis[*it]++;
        off.clear();
      }
      if (s[i][0] == '-') {
        q.erase(a[i]);
        off.insert(a[i]);
      } else {
        if (off.count(a[i]) != 0) off.erase(a[i]);
        q.insert(a[i]);
      }
      if (q.size() != 0) {
        set<int>::iterator it;
        for (it = off.begin(); it != off.end(); it++) vis[*it]++;
        off.clear();
      }
    }
    for (i = 1; i <= n; i++) {
      if (!vis[i]) res.push_back(i);
    }
    printf("%d\n", res.size());
    for (i = 0; i < res.size(); i++) {
      if (i) printf(" ");
      printf("%d", res[i]);
    }
    if (res.size() != 0) puts("");
  }
  return 0;
}
