#include <bits/stdc++.h>
using namespace std;
int st[100001];
bool pos[100001];
int main() {
  int n, m, i, j;
  scanf("%d%d", &n, &m);
  memset(st, 0, sizeof(st));
  set<int> on, of;
  for (i = 1; i <= n; i++) {
    pos[i] = true;
  }
  set<int>::iterator it;
  char o;
  int p, lst = -1;
  for (i = 1; i <= m; i++) {
    getchar();
    scanf("%c%d", &o, &p);
    if (o == '-') {
      if (on.size()) {
        if (st[p] == 0) {
          for (it = on.begin(); it != on.end(); it++) pos[*it] = false;
          on.clear();
        }
        if (!(on.size() == 1 && (*on.begin()) == p)) pos[p] = false;
      }
      if (of.size()) {
        for (it = of.begin(); it != of.end(); it++) pos[*it] = false;
        of.clear();
      }
      if (st[p] == 1) {
        if (on.find(p) != on.end()) on.erase(p);
      }
      of.insert(p);
      st[p] = 2;
      lst = p;
    } else {
      if (on.size()) {
        pos[p] = false;
      }
      if (of.size()) {
        if (p != lst) {
          pos[p] = false;
        }
        for (it = of.begin(); it != of.end(); it++) {
          if (*it != p) pos[*it] = false;
        }
        of.clear();
      }
      if (st[p] == 2) {
        if (of.find(p) != of.end()) of.erase(p);
      }
      on.insert(p);
      st[p] = 1;
    }
  }
  j = 0;
  for (i = 1; i <= n; i++) {
    if (pos[i]) {
      j++;
    }
  }
  printf("%d\n", j);
  j = 1;
  for (i = 1; i <= n; i++) {
    if (pos[i]) {
      if (j == 1) {
        printf("%d", i);
        j--;
      } else
        printf(" %d", i);
    }
  }
  putchar('\n');
  return 0;
}
