f = lambda l: (lambda l, r: (lambda r, l, f: f((r, l), f))(r, l, lambda x, f: f(({k: v + (0 if k != x[1][0] else 1) for k, v in x[0].items()} if x[1][0] in x[0] else {k: v for k, v in list(x[0].items()) + [(x[1][0], 1)]}, x[1][1:]) if x[1] else (x[0], x[1]), f) if x[1] else x[0]))(l, {})
l = ["mango", "cherry", "banana", "cherry", "grape", "mango", "apple", "cherry", "banana"]
print(f(l))
print(f(l) == {'mango': 2, 'cherry': 3, 'banana': 2, 'grape': 1, 'apple': 1})
ZiA9IGxhbWJkYSBsOiAobGFtYmRhIGwsIHI6IChsYW1iZGEgciwgbCwgZjogZigociwgbCksIGYpKShyLCBsLCBsYW1iZGEgeCwgZjogZigoe2s6IHYgKyAoMCBpZiBrICE9IHhbMV1bMF0gZWxzZSAxKSBmb3IgaywgdiBpbiB4WzBdLml0ZW1zKCl9IGlmIHhbMV1bMF0gaW4geFswXSBlbHNlIHtrOiB2IGZvciBrLCB2IGluIGxpc3QoeFswXS5pdGVtcygpKSArIFsoeFsxXVswXSwgMSldfSwgeFsxXVsxOl0pIGlmIHhbMV0gZWxzZSAoeFswXSwgeFsxXSksIGYpIGlmIHhbMV0gZWxzZSB4WzBdKSkobCwge30pCgpsID0gWyJtYW5nbyIsICJjaGVycnkiLCAiYmFuYW5hIiwgImNoZXJyeSIsICJncmFwZSIsICJtYW5nbyIsICJhcHBsZSIsICJjaGVycnkiLCAiYmFuYW5hIl0KcHJpbnQoZihsKSkKcHJpbnQoZihsKSA9PSB7J21hbmdvJzogMiwgJ2NoZXJyeSc6IDMsICdiYW5hbmEnOiAyLCAnZ3JhcGUnOiAxLCAnYXBwbGUnOiAxfSk=