#include <bits/stdc++.h>
using namespace std;
inline void R(int &x) {
  char ch = getchar();
  x = 0;
  for (; ch < '0'; ch = getchar())
    ;
  for (; ch >= '0'; ch = getchar()) x = x * 10 + ch - '0';
}
const int N = 100005;
int n, m;
pair<int, int> a[N], b[N];
char op[N];
int firsta[N], sta[N];
set<int> pi, po;
vector<int> p;
int main() {
  R(n);
  R(m);
  for (int i = 1; i <= m; ++i) {
    scanf("%s", op);
    if (op[0] == '+')
      a[i].first = 1;
    else
      a[i].first = -1;
    R(a[i].second);
    if (!firsta[a[i].second]) firsta[a[i].second] = a[i].first;
  }
  int incnt = 0;
  for (int i = 1; i <= n; ++i) {
    sta[i] = -firsta[i];
    if (sta[i] == 1) pi.insert(i), ++incnt;
    if (sta[i] == -1) po.insert(i);
  }
  if (pi.size() > 0) po.clear();
  for (int i = 1; i <= m; ++i) {
    if (a[i].first == 1) {
      sta[a[i].second] = 1;
      ++incnt;
      if (po.count(a[i].second)) pi.insert(a[i].second);
      po.clear();
    } else {
      sta[a[i].second] = -1;
      --incnt;
      if (pi.count(a[i].second)) {
        if (incnt <= 0) po.insert(a[i].second);
        pi.erase(a[i].second);
      }
    }
  }
  for (int i = 1; i <= n; ++i)
    if (!sta[i] || pi.count(i) || po.count(i)) p.push_back(i);
  printf("%d\n", p.size());
  for (int i = 0; i < p.size(); ++i) printf("%d ", p[i]);
  return 0;
}
