def insert(tree,levels,n):
for i in xrange(levels):
tree[i][n] += 1
n /= 2
def delete(tree,levels,n):
for i in xrange(levels):
tree[i][n] -= 1
n /= 2
def kthElem(tree,levels,k):
a = 0
for b in reversed(xrange(levels)):
a *= 2
if tree[b][a] < k:
k -= tree[b][a]
a += 1
return a
def main():
seed,mul,add,N,K = map(int, "47 5621 1 125000 1700".split())
levels = 17
tree = [[0] * 65536 for _ in xrange(levels)]
temps = [0] * N
temps[0] = seed
for i in xrange(1,N):
temps[i] = (temps[i-1]*mul + add) % 65536
result = 0
for i in xrange(N):
insert(tree,levels,temps[i])
if (i >= K):
delete(tree,levels,temps[i-K])
if (i >= K-1):
result += kthElem(tree,levels,((K+1)/2))
print result
# default input
# 47 5621 1 125000 1700
# output
# 4040137193
import cProfile
cProfile.run("main()")
ZGVmIGluc2VydCh0cmVlLGxldmVscyxuKToKICAgICAgICBmb3IgaSBpbiB4cmFuZ2UobGV2ZWxzKToKICAgICAgICAgICAgICAgIHRyZWVbaV1bbl0gKz0gMQogICAgICAgICAgICAgICAgbiAvPSAyCmRlZiBkZWxldGUodHJlZSxsZXZlbHMsbik6CiAgICAgICAgZm9yIGkgaW4geHJhbmdlKGxldmVscyk6CiAgICAgICAgICAgICAgICB0cmVlW2ldW25dIC09IDEKICAgICAgICAgICAgICAgIG4gLz0gMgoKZGVmIGt0aEVsZW0odHJlZSxsZXZlbHMsayk6CiAgICAgICAgYSA9IDAKICAgICAgICBmb3IgYiBpbiByZXZlcnNlZCh4cmFuZ2UobGV2ZWxzKSk6CiAgICAgICAgICAgICAgICBhICo9IDIKICAgICAgICAgICAgICAgIGlmIHRyZWVbYl1bYV0gPCBrOgogICAgICAgICAgICAgICAgICAgICAgICBrIC09IHRyZWVbYl1bYV0KICAgICAgICAgICAgICAgICAgICAgICAgYSArPSAxCiAgICAgICAgcmV0dXJuIGEKCmRlZiBtYWluKCk6CiAgICAgICAgc2VlZCxtdWwsYWRkLE4sSyA9IG1hcChpbnQsICI0NyA1NjIxIDEgMTI1MDAwIDE3MDAiLnNwbGl0KCkpCiAgICAgICAgbGV2ZWxzID0gMTcKICAgICAgICB0cmVlID0gW1swXSAqIDY1NTM2IGZvciBfIGluIHhyYW5nZShsZXZlbHMpXQogICAgICAgIHRlbXBzID0gWzBdICogTgogICAgICAgIHRlbXBzWzBdID0gc2VlZAogICAgICAgIGZvciBpIGluIHhyYW5nZSgxLE4pOgogICAgICAgICAgICAgICAgdGVtcHNbaV0gPSAodGVtcHNbaS0xXSptdWwgKyBhZGQpICUgNjU1MzYKICAgICAgICByZXN1bHQgPSAwCiAgICAgICAgZm9yIGkgaW4geHJhbmdlKE4pOgogICAgICAgICAgICAgICAgaW5zZXJ0KHRyZWUsbGV2ZWxzLHRlbXBzW2ldKQogICAgICAgICAgICAgICAgaWYgKGkgPj0gSyk6CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSh0cmVlLGxldmVscyx0ZW1wc1tpLUtdKSAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAoaSA+PSBLLTEpOgogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0ga3RoRWxlbSh0cmVlLGxldmVscywoKEsrMSkvMikpCgogICAgICAgIHByaW50IHJlc3VsdAoKIyBkZWZhdWx0IGlucHV0CiMgNDcgNTYyMSAxIDEyNTAwMCAxNzAwCiMgb3V0cHV0CiMgNDA0MDEzNzE5MwoKaW1wb3J0IGNQcm9maWxlCmNQcm9maWxlLnJ1bigibWFpbigpIik=