#include <bits/stdc++.h>
using namespace std;
struct info {
  char op;
  int id;
} c[101000];
bool bo[101000], vis[101000], che[101000];
int n1, n2, a[101000];
int main() {
  int i, j, k, n, t, m, T, x, y, xx, yy, p, z, now, ans, id;
  char op;
  memset(bo, true, sizeof(bo));
  memset(vis, 0, sizeof(vis));
  memset(che, true, sizeof(che));
  scanf("%d%d", &n, &m);
  k = 0;
  for (i = 1; i <= m; i++) {
    scanf(" %c", &c[i].op);
    scanf("%d", &c[i].id);
    if (c[i].op == '+')
      vis[c[i].id] = true;
    else if (!vis[c[i].id])
      k = i;
  }
  for (i = 1; i < k; i++)
    if (c[i].op == '+') bo[c[i].id] = false;
  memset(vis, 0, sizeof(vis));
  n1 = n2 = 0;
  for (i = 1; i <= m; i++) {
    op = c[i].op;
    id = c[i].id;
    if (op == '+') {
      if (n1 != 0 || i > 1 && !(c[i - 1].op == '-' && c[i - 1].id == id))
        bo[id] = false;
      n1++;
      vis[id] = true;
    } else if (op == '-') {
      if (n1 > 1 || n1 == 1 && !vis[id] ||
          i < m && !(c[i + 1].op == '+' && c[i + 1].id == id))
        bo[id] = false;
      if (vis[id]) {
        vis[id] = false;
        n1--;
      }
    }
  }
  for (ans = 0, i = 1; i <= n; i++)
    if (bo[i]) a[++ans] = i;
  printf("%d\n", ans);
  for (i = 1; i < ans; i++) printf("%d ", a[i]);
  if (ans) printf("%d\n", a[ans]);
}
