#include <bits/stdc++.h>
using namespace std;
int n, i, m, now, a[1100000], ans;
char k[1100000];
bool used[1100000], cant[1100000], in[1100000], first[1100000];
set<int> Set;
set<int>::iterator it;
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) {
    for (k[i] = getchar(); k[i] <= 32; k[i] = getchar())
      ;
    scanf("%d", &a[i]);
    if (k[i] == '+') {
      in[a[i]] = used[a[i]] = true;
    } else {
      if (!in[a[i]]) {
        first[a[i]]++;
        used[a[i]] = true;
      }
    }
  }
  memset(in, false, sizeof in);
  for (int i = 1; i <= n; i++)
    if (first[i]) in[i] = true, now++;
  if (now) {
    for (int i = 1; i <= n; i++)
      if (!in[i] && used[i]) cant[i] = true;
  } else {
    for (int i = 1; i <= n; i++)
      if (used[i]) Set.insert(i);
  }
  for (int i = 1; i <= m; i++) {
    if (k[i] == '+') {
      in[a[i]] = true;
      now++;
      if (Set.count(a[i])) Set.erase(a[i]);
    } else {
      in[a[i]] = false;
      now--;
      if (!cant[a[i]]) Set.insert(a[i]);
    }
    if (now) {
      for (it = Set.begin(); it != Set.end(); it++) cant[*it] = true;
      Set.clear();
    }
  }
  for (int i = 1; i <= n; i++)
    if (!used[i] || !cant[i]) ans++;
  printf("%d\n", ans);
  for (int i = 1; i <= n; i++)
    if (!used[i] || !cant[i]) printf("%d ", i);
}
