#include <bits/stdc++.h>
using namespace std;
char logs[100100];
int lgr[100100];
int main() {
  int n, m, i, j, k;
  char c;
  set<int> login, possibles, ans, seenlogin;
  while (cin >> n >> m) {
    login.clear();
    possibles.clear();
    ans.clear();
    seenlogin.clear();
    for (i = 1; i <= n; i++) ans.insert(i);
    for (i = 0; i < m; i++) {
      cin >> c >> k;
      lgr[i] = k;
      logs[i] = c;
      ans.erase(k);
      if (c == '-' && seenlogin.find(k) == seenlogin.end()) login.insert(k);
      if (c == '+') seenlogin.insert(k);
    }
    for (auto x : login) possibles.insert(x);
    for (i = 0; i < m; i++) {
      if (logs[i] == '+') {
        if (login.size()) possibles.erase(lgr[i]);
        if (i >= 1 && !(logs[i - 1] == '-' && lgr[i - 1] == lgr[i]))
          possibles.erase(lgr[i]);
        if (i == 0 && login.empty()) possibles.insert(lgr[i]);
        login.insert(lgr[i]);
      } else {
        if (login.size() > 1) possibles.erase(lgr[i]);
        if (i < m - 1 && login.size() == 1 &&
            !(logs[i + 1] == '+' && lgr[i + 1] == lgr[i]))
          possibles.erase(lgr[i]);
        login.erase(lgr[i]);
      }
    }
    for (auto x : possibles) ans.insert(x);
    cout << ans.size() << endl;
    for (auto x : ans) cout << x << " ";
    cout << endl;
  }
}
