#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
int ind[MAXN];
bool type[MAXN];
set<int> haveInBeg;
int main() {
  int n, m;
  while (~scanf("%d%d", &n, &m)) {
    for (int i = 0; i < m; ++i) {
      char inp[2];
      scanf("%s%d", inp, &ind[i]);
      if (inp[0] == '+') {
        type[i] = true;
      } else {
        type[i] = false;
      }
    }
    for (int i = m - 1; i >= 0; i--) {
      if (type[i]) {
        haveInBeg.erase(ind[i]);
      } else {
        haveInBeg.insert(ind[i]);
      }
    }
    set<int> ans;
    for (int i = 1; i <= n; ++i) ans.insert(i);
    for (int i = 0; i < m; ++i) {
      if (type[i]) {
        if (i && ind[i - 1] != ind[i]) {
          ans.erase(ind[i]);
        }
        if (!haveInBeg.empty()) {
          ans.erase(ind[i]);
        }
        haveInBeg.insert(ind[i]);
      } else {
        if (i < m - 1 && ind[i + 1] != ind[i]) {
          ans.erase(ind[i]);
        }
        haveInBeg.erase(ind[i]);
        if (!haveInBeg.empty()) {
          ans.erase(ind[i]);
        }
      }
    }
    set<int>::iterator it;
    printf("%d\n", ans.size());
    for (it = ans.begin(); it != ans.end(); ++it) printf("%d ", *it);
    puts("");
  }
  return 0;
}
