3 1
erase -1
erase 0
erase -2147483648
 26 25
defragment
erase 1
erase -1560200883
alloc 44
defragment
alloc 75
alloc 22
defragment
erase 4
defragment
alloc 57
alloc 53
erase 4
erase -1639632026
erase -2121605039
erase 3
alloc 51
alloc 65
defragment
erase 2
erase 4
alloc 52
erase 3
defragment
erase -1842529282
erase 3
 12 40
erase 1
alloc 21
alloc 5
alloc 7
defragment
defragment
erase 2
alloc 83
erase 4
defragment
alloc 59
defragment
 44 46
alloc 28
alloc 36
defragment
erase -937404236
alloc 71
defragment
alloc 81
alloc 51
erase 3
defragment
alloc 48
erase 1
defragment
alloc 36
defragment
defragment
erase 1
defragment
defragment
erase -1173350787
alloc 94
erase 5
defragment
erase 9
alloc 98
erase 7
defragment
erase 5
erase 1
defragment
erase 2
defragment
erase 4
defragment
erase 9
alloc 8
defragment
erase 9
defragment
defragment
defragment
erase 1
alloc 70
erase 9
 7 6
alloc 1
alloc 2
alloc 3
erase 1
defragment
erase 3
alloc 4
 47 43
erase 1
alloc 95
alloc 53
erase 2
defragment
alloc 100
erase 4
erase 2
erase -849472053
defragment
erase -638355221
alloc 90
erase 3
erase 2
defragment
alloc 17
erase 5
defragment
erase 6
defragment
erase 3
defragment
defragment
alloc 99
alloc 69
alloc 80
erase 9
erase 5
defragment
erase 7
defragment
alloc 93
defragment
defragment
alloc 25
defragment
alloc 14
erase 8
erase 4
defragment
defragment
alloc 96
erase 9
alloc 63
erase 8
defragment
erase 10
 8 50
alloc 51
defragment
alloc 100
defragment
erase 1
alloc 50
defragment
alloc 50
 6 1
defragment
alloc 10
alloc 1
erase -1
erase 1
erase 1
 26 25
alloc 25
erase 1
alloc 24
erase 2
alloc 23
erase 3
alloc 24
erase 4
alloc 24
erase 5
alloc 21
erase 6
alloc 24
erase 7
alloc 25
erase 8
alloc 25
erase 9
alloc 24
erase 10
alloc 25
erase 11
alloc 25
erase 12
alloc 25
erase 13
 10 10
alloc 10
erase -1
erase 1
alloc 5
erase -1
alloc 5
erase 0
alloc 5
erase 0
alloc 5
 37 74
alloc 11
defragment
erase 1
defragment
erase 2
defragment
alloc 90
erase 3
erase 2
erase 3
erase 1
erase 1
alloc 38
alloc 19
erase 1
erase 3
defragment
alloc 93
erase 5
erase 4
alloc 66
alloc 71
erase 5
defragment
defragment
defragment
defragment
erase 7
alloc 47
erase -95616683
erase 2
alloc 28
alloc 32
erase 11
alloc 50
defragment
defragment
 19 46
alloc 21
erase 2
erase 1
defragment
alloc 4
defragment
defragment
alloc 40
erase 1
defragment
defragment
alloc 68
erase -388966015
alloc 85
alloc 53
erase 4
defragment
alloc 49
alloc 88
 12 10
alloc 6
alloc 2
erase 1
alloc 4
alloc 2
erase 3
alloc 2
alloc 3
alloc 1
alloc 1
alloc 1
alloc 1
 16 10
alloc 10
defragment
defragment
defragment
alloc 10
erase 1
erase 2
alloc 6
defragment
defragment
alloc 4
defragment
defragment
erase 2
defragment
alloc 6
 14 100
alloc 99
alloc 1
alloc 1
erase 2
alloc 1
erase 4
erase 1
alloc 100
alloc 1
alloc 99
defragment
erase 4
alloc 100
alloc 99
 22 9
alloc 9
erase 1
alloc 9
erase 2
alloc 9
erase 3
alloc 9
erase 4
alloc 9
erase 5
alloc 9
erase 6
alloc 9
erase 7
alloc 9
erase 8
alloc 9
erase 9
alloc 9
erase 10
alloc 9
erase 11
 42 98
defragment
defragment
defragment
defragment
defragment
alloc 5
alloc 66
defragment
erase 3
alloc 53
defragment
erase 4
erase 2
alloc 70
erase 3
defragment
defragment
erase 2
erase 3
erase -1327931832
alloc 93
alloc 64
erase 7
erase 6
erase 3
alloc 61
alloc 12
alloc 65
erase 2
alloc 46
erase 11
erase 9
erase 9
erase 6
alloc 2
alloc 78
defragment
erase 13
erase 6
erase 10
alloc 53
alloc 46
 16 10
alloc 10
defragment
defragment
defragment
alloc 10
erase 1
erase 2
alloc 6
defragment
defragment
alloc 4
defragment
defragment
erase 3
defragment
alloc 6
 38 18
alloc 72
erase 2
alloc 50
defragment
erase 3
defragment
alloc 43
alloc 41
defragment
defragment
alloc 26
alloc 46
alloc 16
alloc 15
defragment
defragment
alloc 95
erase 7
erase 7
erase 5
erase 2
erase 9
erase 7
alloc 43
defragment
erase 7
defragment
alloc 48
alloc 77
erase 10
erase 11
alloc 16
alloc 84
erase 1
defragment
alloc 86
defragment
erase 13
 16 49
erase -751005193
defragment
alloc 37
alloc 82
erase 3
erase 1
alloc 80
alloc 51
defragment
alloc 74
erase 1
alloc 91
defragment
defragment
alloc 98
defragment
 22 9
erase 1
alloc 6
alloc 65
erase 1
alloc 87
erase -1638927047
alloc 5
erase 2
alloc 70
defragment
alloc 20
alloc 48
erase -69401977
alloc 20
defragment
erase 7
defragment
erase 9
erase 7
erase 4
defragment
alloc 66
 7 100
alloc 100
erase 2147483647
erase 1
alloc 50
alloc 50
erase 3
erase -2147483648

ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
 ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
1
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
 ILLEGAL_ERASE_ARGUMENT
1
2
3
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
 1
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
2
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
3
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
 1
2
3
4
 ILLEGAL_ERASE_ARGUMENT
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
1
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
2
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
 NULL
NULL
ILLEGAL_ERASE_ARGUMENT
1
NULL
 NULL
1
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
 1
2
3
4
5
6
7
8
9
10
11
12
13
 1
ILLEGAL_ERASE_ARGUMENT
2
ILLEGAL_ERASE_ARGUMENT
3
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
 1
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
2
3
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
4
5
ILLEGAL_ERASE_ARGUMENT
NULL
 1
ILLEGAL_ERASE_ARGUMENT
2
3
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
 1
2
3
4
5
NULL
6
7
8
9
 1
NULL
ILLEGAL_ERASE_ARGUMENT
2
3
4
 1
2
NULL
3
ILLEGAL_ERASE_ARGUMENT
NULL
4
NULL
NULL
NULL
 1
2
3
4
5
6
7
8
9
10
11
 1
2
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
3
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
4
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
 1
NULL
ILLEGAL_ERASE_ARGUMENT
2
3
NULL
 NULL
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
NULL
NULL
1
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
 ILLEGAL_ERASE_ARGUMENT
1
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
NULL
 ILLEGAL_ERASE_ARGUMENT
1
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
2
NULL
NULL
NULL
ILLEGAL_ERASE_ARGUMENT
NULL
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
ILLEGAL_ERASE_ARGUMENT
NULL
 1
ILLEGAL_ERASE_ARGUMENT
2
3
ILLEGAL_ERASE_ARGUMENT

#include <bits/stdc++.h>
using namespace std;
struct node {
  int n;
  int l;
  int r;
  int size;
  node() {}
  node(int a, int b, int c, int d, node *ne, node *pre)
      : n(a), l(b), r(c), size(d), next(ne), prev(pre) {}
  node *next;
  node *prev;
};
int toINT(char an[], int s) {
  int total = 0;
  for (int i = s; an[i] != '\0'; i++) total = total * 10 + an[i] - '0';
  return total;
}
node *alloc = NULL, *space, *temp;
char command[100];
int t, m, counts = 1;
void deletes(node *head, node *del, bool flag) {
  if (del == head) {
    if (flag == 0) space = del->next;
    if (flag == 1) alloc = del->next;
    if (del->next != NULL) del->next->prev = NULL;
  } else {
    del->prev->next = del->next;
    if (del->next != NULL) del->next->prev = del->prev;
  }
  delete del;
}
void insert(node *head, node *in, bool flag) {
  if (head == NULL) {
    if (flag == 1) alloc = in;
    if (flag == 0) space = in;
    in->next = NULL;
    return;
  }
  while (head->next != NULL) {
    if (head->l > in->l) break;
    head = head->next;
  }
  if (head->l > in->l) {
    if (flag == 0) {
      if (head->prev != NULL && head->prev->r + 1 == in->l) {
        head->prev->r = in->r;
        head->prev->size += in->size;
        if (head->prev->r + 1 == head->l) {
          head->prev->r = head->r;
          head->prev->size += head->size;
          deletes(space, head, 0);
        }
        return;
      }
      if (in->r + 1 == head->l) {
        head->l = in->l;
        head->size += in->size;
        return;
      }
    }
    in->next = head;
    in->prev = head->prev;
    if (head->prev != NULL)
      head->prev->next = in;
    else {
      if (flag == 1) alloc = in;
      if (flag == 0) space = in;
    }
    head->prev = in;
  } else {
    if (flag == 0 && in->l == head->r + 1) {
      head->r = in->r, head->size += in->size;
      return;
    }
    head->next = in;
    in->prev = head;
    in->next = NULL;
  }
}
int main() {
  scanf("%d %d\n", &t, &m);
  space = new node(-1, 1, m, m, NULL, NULL);
  for (int i = 0; i < t; i++) {
    gets(command);
    if (strncmp(command, "alloc", 5) == 0) {
      temp = space;
      int v = toINT(command, 6);
      while (temp != NULL) {
        if (temp->size >= v) break;
        temp = temp->next;
      }
      if (temp == NULL)
        printf("NULL\n");
      else if (temp->size == v) {
        node *al = new node(*temp);
        printf("%d\n", counts);
        al->n = counts++;
        deletes(space, temp, 0);
        insert(alloc, al, 1);
      } else {
        node *al = new node(*temp);
        printf("%d\n", counts);
        al->n = counts++;
        al->r = al->l + v - 1;
        al->size = v;
        insert(alloc, al, 1);
        temp->l += v, temp->size = temp->r - temp->l + 1;
      }
    }
    if (strncmp(command, "erase", 5) == 0) {
      temp = alloc;
      int v = toINT(command, 6);
      while (temp != NULL) {
        if (temp->n == v) break;
        temp = temp->next;
      }
      if (temp == NULL)
        printf("ILLEGAL_ERASE_ARGUMENT\n");
      else {
        node *sp = new node(*temp);
        deletes(alloc, temp, 1);
        insert(space, sp, 0);
      }
    }
    if (strncmp(command, "defragment", 10) == 0) {
      int to = 0;
      temp = alloc;
      while (temp != NULL) {
        temp->l = 1 + to;
        temp->r = 1 + to + temp->size - 1;
        to += temp->size;
        temp = temp->next;
      }
      if (to != 0) space = new node(-1, to + 1, m, m - to, NULL, NULL);
    }
  }
  return 0;
}
