#include <bits/stdc++.h>
using namespace std;
int n, m;
int canBe[100000];
int isHere[100000];
bool pre[100000];
vector<int> history;
char com[100000];
int x[100000];
bool allExcept[100000];
int cntHere = 0;
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    canBe[i] = 1;
    isHere[i] = -1;
    allExcept[i] = 0;
  }
  for (int i = 0; i < m; i++) {
    cin >> com[i] >> x[i];
    x[i]--;
  }
  bool tmp[100000];
  for (int i = 0; i < n; i++) tmp[i] = 0;
  for (int i = 0; i < m; i++) {
    int curr = x[i];
    if (tmp[curr] == 0) {
      if (com[i] == '+') {
        isHere[curr] = 0;
      } else {
        isHere[curr] = 1;
        cntHere++;
      }
    }
    tmp[curr] = 1;
  }
  for (int i = 0; i < n; i++) {
    if (cntHere != 0 && isHere[i] == 0) canBe[i] = 0;
  }
  for (int i = 0; i < m; i++) {
    int curr = x[i];
    if (com[i] == '+') {
      if (cntHere != 0) {
        canBe[curr] = 0;
      } else {
        allExcept[curr] = 1;
      }
      cntHere++;
      isHere[curr] = 1;
    } else {
      if (cntHere != 1) {
        canBe[curr] = 0;
      } else {
        allExcept[curr] = 1;
      }
      cntHere--;
      isHere[curr] = 0;
    }
  }
  int excCnt = 0;
  int excId = -1;
  for (int i = 0; i < n; i++) {
    if (allExcept[i]) {
      excId = i;
      excCnt++;
    }
  }
  vector<int> ans;
  for (int i = 0; i < n; i++) {
    if (isHere[i] == -1)
      ans.push_back(i);
    else if (excCnt == 0) {
      if (canBe[i]) ans.push_back(i);
    }
  }
  if (excCnt == 1) {
    if (canBe[excId]) {
      ans.push_back(excId);
    }
  }
  cout << ans.size() << "\n";
  sort(ans.begin(), ans.end());
  for (int i = 0; i < ans.size(); i++) {
    cout << ans[i] + 1 << " ";
  }
  return 0;
}
