#include <bits/stdc++.h>
using namespace std;
const int N = (int)(3e5 + 20);
const int INF = (1 << 30);
int used[N];
int used2[N];
int main() {
  ios_base::sync_with_stdio(0);
  int n, m;
  cin >> n >> m;
  int cnt = 0;
  vector<pair<char, int> > v(m);
  for (int i = 0; i < m; ++i) {
    cin >> v[i].first >> v[i].second;
    if (!used[v[i].second] && v[i].first == '-') {
      ++cnt;
      used[v[i].second] = 2;
    }
    used[v[i].second] = max(used[v[i].second], 1);
  }
  bool apriory = cnt > 0;
  for (int i = m - 1; i >= 0; --i) {
    if (!used2[v[i].second] && v[i].first == '+') {
      used[v[i].second] = 2;
      apriory = true;
    }
    used2[v[i].second] = 1;
  }
  int candidate = -1;
  for (int i = 0; i < m; ++i) {
    if (v[i].first == '+') {
      if (cnt == 0) {
        if (candidate > 0 && candidate != v[i].second) {
          candidate = -1;
          break;
        }
        candidate = v[i].second;
      }
      ++cnt;
    } else {
      if (cnt == 1) {
        if (candidate > 0 && candidate != v[i].second) {
          candidate = -1;
          break;
        }
        candidate = v[i].second;
      }
      --cnt;
    }
  }
  if (candidate > 0 && (!apriory || used[candidate] == 2)) used[candidate] = 0;
  int k = 0;
  for (int i = 1; i <= n; ++i) k += !used[i];
  cout << k << '\n';
  for (int i = 1; i <= n; ++i)
    if (!used[i]) cout << i << ' ';
  return 0;
}
