2 6 PUT a 10 PUT b 20 GET a PUT c 30 GET b GET c
10 -1 30
import sys
from collections import OrderedDict
lines=sys.stdin.read().splitlines()
if not lines or not lines[0].strip():
sys.exit(0)
C,Q=map(int,lines[0].split())
cache=OrderedDict()
out=[]
for i in range(1,1+Q):
parts=(lines[i] if i < len(lines) else '').split()
if not parts:
continue
if parts[0]=='GET':
k=parts[1]
if k in cache:
v=cache.pop(k)
cache[k]=v
out.append(str(v))
else:
out.append('-1')
else:
k=parts[1]
v=parts[2]
if k in cache:
cache.pop(k)
cache[k]=v
if len(cache)>C:
cache.popitem(last=False)
sys.stdout.write('\
'.join(out))
import sys
from collections import OrderedDict
lines=sys.stdin.read().splitlines()
if not lines or not lines[0].strip():
sys.exit(0)
C,Q=map(int,lines[0].split())
cache=OrderedDict()
out=[]
for i in range(1,1+Q):
parts=(lines[i] if i < len(lines) else '').split()
if not parts:
continue
if parts[0]=='GET':
k=parts[1]
if k in cache:
v=cache.pop(k)
cache[k]=v
out.append(str(v))
else:
out.append('-1')
else:
k=parts[1]
v=parts[2]
if k in cache:
cache.pop(k)
cache[k]=v
if len(cache)>C:
cache.popitem(last=False)
sys.stdout.write('\
'.join(out))