#include <bits/stdc++.h>
using namespace std;
const int inf = (int)1e9;
const int MOD = (int)1e9 + 7;
const long double pi = atan2(0, -1);
const int N = 1000000;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.precision(20);
  int n, k;
  cin >> n >> k;
  bool used[n];
  int a[k][2];
  for (int i = 0; i < k; i++) {
    char c;
    int x;
    cin >> c >> x;
    if (c == '+')
      a[i][0] = 0;
    else
      a[i][0] = 1;
    a[i][1] = x - 1;
  }
  set<int> s;
  fill(used, used + n, false);
  for (int i = 0; i < k; i++)
    if (a[i][0] == 0 && !used[a[i][1]])
      s.insert(a[i][1]);
    else if (a[i][0] == 1)
      used[a[i][1]] = true;
  fill(used, used + n, false);
  int cnt = 0;
  for (int i = 0; i < k; i++)
    if (a[i][0] == 1 && !used[a[i][1]])
      cnt++;
    else if (a[i][0] == 0)
      used[a[i][1]] = true;
  fill(used, used + n, true);
  for (int i = 0; i < n; i++)
    if (cnt > 0 && s.find(i) != s.end()) used[i] = false;
  for (int i = 0; i < k; i++) {
    int x = a[i][1];
    if (a[i][0] == 0) {
      if (cnt > 0) used[x] = false;
      cnt++;
      s.erase(x);
    } else {
      cnt--;
      if (cnt > 0) used[x] = false;
      if (used[x]) s.insert(x);
    }
    if (cnt > 0) {
      for (int i : s) used[i] = false;
      s.clear();
    }
  }
  int res = 0;
  for (int i = 0; i < n; i++)
    if (used[i]) res++;
  cout << res << endl;
  for (int i = 0; i < n; i++)
    if (used[i]) cout << i + 1 << " ";
  return 0;
}
