Memory units are numbered from 1 up to N. A sequence of memory units is called a memory block.
The memory control system we consider now has four kinds of operations:
Reset: Reset all memory units free. For each
New x: Allocate a memory block consisted of x continuous free memory units with the least start number. For each
Newoperation, if it’s possible to allocate a memory block, output
New at A, where A is the least start number, otherwise output
Free x: Release the memory block which includes unit x. For each
Freeoperation, if it’s possible to find a memory block occupy unit x, output
Free from A to B, where A and B refer to the start and end number of the memory block, otherwise output
Get x: Return the start number of the xth memory block(Note that we count the memory blocks allocated from left to right). For each
Getoperation, if it’s possible to find the xth memory blocks, output
Get at A, where A is its start number, otherwise output
Where 1<=x<=N. You are request to find out the output for M operations. Output one blank line after each test case.