#include<iostream>
#include<vector>
#include<math.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;


const int ASCII_S = 's';
const int ASCII_W = 'w';
const int EMPTY = -1;



int main() {

	while (true){
		int w, q;
		cin >> w >> q;

		if (w == 0 && q == 0){
			return 0;
		}

		vector<int> cat_map;
		for (int i = 0; i < w; ++i){
			cat_map.push_back(EMPTY);
		}

		char a;
		int  b, c;
		for (int k = 0; k < q; ++k){
			cin >> a >> b;

			switch ((int)a)
			{
			case ASCII_S:
				cin >> c;
				// look for a vacant space
				for (int i = 0; i < cat_map.size(); ++i){
					if (cat_map[i] == EMPTY){
						bool isVacant = true;
						for (int j = 0; j < c; ++j){
							if (!((i + j) < cat_map.size()) || cat_map[i + j] != EMPTY){
								isVacant = false;
							}
						}
						if (isVacant){
							cout << i <<endl;
							for (int j = 0; j < c && (i + j) < cat_map.size(); ++j){
								cat_map[i + j] = b;
							}
						}
					}
					vector<int>::iterator cIter = find(cat_map.begin(), cat_map.end(), b);
					if (cIter != cat_map.end()){
						i = cat_map.size();
					}

				}
			{
				vector<int>::iterator cIter = find(cat_map.begin(), cat_map.end(), b);
				if (cIter == cat_map.end()){
					cout << "impossible" << endl;
				}
			}


			break;
			case ASCII_W:
				for (int i = 0; i < cat_map.size(); ++i){
					if (cat_map[i] == b){
						cat_map[i] = EMPTY;
					}
				}

				break;
			}

		}
		cout << "END" << endl;
	}
	

}