f = lambda l: '\n'.join(map(lambda x: f'{x[0]}: {x[1]}', (lambda l: (lambda a: (lambda a, f: f(a, [], f))(a, (lambda a, r, f: (lambda x: f(x[0], x[1], f))((lambda a, r: (lambda x, r: (x[1], r + [x[0]]))((lambda a: ((lambda a, f: f(a[1:], [], a[0], f))(a, lambda a, b, i, f: (f(a[1:], b+[i], a[0], f) if a[0][1] > i[1] else f(a[1:], b+[a[0]], i, f)) if a else (i, b))))(a), r))(a, r)) if a else r)))(list((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).items())))(l)))
l = ["mango", "cherry", "banana", "cherry", "grape", "mango", "apple", "cherry", "banana"]
print(f(l))
ZiA9IGxhbWJkYSBsOiAnXG4nLmpvaW4obWFwKGxhbWJkYSB4OiBmJ3t4WzBdfToge3hbMV19JywgKGxhbWJkYSBsOiAobGFtYmRhIGE6IChsYW1iZGEgYSwgZjogZihhLCBbXSwgZikpKGEsIChsYW1iZGEgYSwgciwgZjogKGxhbWJkYSB4OiBmKHhbMF0sIHhbMV0sIGYpKSgobGFtYmRhIGEsIHI6IChsYW1iZGEgeCwgcjogKHhbMV0sIHIgKyBbeFswXV0pKSgobGFtYmRhIGE6ICgobGFtYmRhIGEsIGY6IGYoYVsxOl0sIFtdLCBhWzBdLCBmKSkoYSwgbGFtYmRhIGEsIGIsIGksIGY6IChmKGFbMTpdLCBiK1tpXSwgYVswXSwgZikgaWYgYVswXVsxXSA+IGlbMV0gZWxzZSBmKGFbMTpdLCBiK1thWzBdXSwgaSwgZikpIGlmIGEgZWxzZSAoaSwgYikpKSkoYSksIHIpKShhLCByKSkgaWYgYSBlbHNlIHIpKSkobGlzdCgobGFtYmRhIGw6IChsYW1iZGEgbCwgcjogKGxhbWJkYSByLCBsLCBmOiBmKChyLCBsKSwgZikpKHIsIGwsIGxhbWJkYSB4LCBmOiBmKCh7azogdiArICgwIGlmIGsgIT0geFsxXVswXSBlbHNlIDEpIGZvciBrLCB2IGluIHhbMF0uaXRlbXMoKX0gaWYgeFsxXVswXSBpbiB4WzBdIGVsc2Uge2s6IHYgZm9yIGssIHYgaW4gbGlzdCh4WzBdLml0ZW1zKCkpICsgWyh4WzFdWzBdLCAxKV19LCB4WzFdWzE6XSkgaWYgeFsxXSBlbHNlICh4WzBdLCB4WzFdKSwgZikgaWYgeFsxXSBlbHNlIHhbMF0pKShsLCB7fSkpKGwpLml0ZW1zKCkpKSkobCkpKQoKbCA9IFsibWFuZ28iLCAiY2hlcnJ5IiwgImJhbmFuYSIsICJjaGVycnkiLCAiZ3JhcGUiLCAibWFuZ28iLCAiYXBwbGUiLCAiY2hlcnJ5IiwgImJhbmFuYSJdCnByaW50KGYobCkpCgo=