#include <bits/stdc++.h>
using namespace std;
typedef int arr32[100010];
int n, m, cnt, G, svt;
arr32 a, b, has, pas, good, bad, sv;
int main() {
  scanf("%d %d", &n, &m);
  for (int i = 1; i <= m; i++) {
    char c = getchar();
    while (c != '+' && c != '-') c = getchar();
    a[i] = (c == '+') ? 1 : -1;
    scanf("%d", b + i);
    if (!has[b[i]]) {
      has[b[i]] = 1;
      if (a[i] < 0) cnt++, pas[b[i]] = 1;
    }
  }
  if (cnt) {
    G++;
    for (int i = 1; i <= n; i++)
      if (has[i] && pas[i]) good[i]++;
  }
  for (int i = 1, x; x = b[i], i <= m; i++)
    if (a[i] > 0) {
      if (++cnt == 1) G++, good[x]++;
      if (cnt > 1) bad[x] = 1;
    } else {
      if (--cnt > 0) bad[x] = 1;
    }
  for (int i = 1; i <= n; i++)
    if (!has[i] || (!bad[i] && good[i] == G)) sv[++svt] = i;
  printf("%d\n", svt);
  for (int i = 1; i <= svt; i++) {
    printf("%d ", sv[i]);
  }
}
