# Task
 Mirko has been moving up in the world of basketball. He started as a mere spectator, but has already reached the coveted position of the national team coach!

 Mirco is now facing a difficult task: selecting five primary players for the upcoming match against Tajikistan. Since Mirko is incredibly lazy, he doesn't bother remembering players' names, let alone their actual skills. That's why he has settled on selecting five players who share the same first letter of their surnames, so that he can remember them easier. If there are no five players sharing the first letter of their surnames, Mirko will simply forfeit the game!

 Your task is to find the first letters Mirko's players' surnames can begin with(In alphabetical order), or return `"forfeit"` if Mirko can't gather a team.

# Input/Output


 - `[input]` string array `players`

  Array of players' surnames, consisting only of lowercase English letters.

 
 - `[output]` a string

  A **sorted** string of possible first letters, or "forfeit" if it's impossible to gather a team.


# Example

For `players = ["michael","jordan","lebron","james","kobe","bryant"]`, the output should be `"forfeit"`.

 For
 ```
 players = ["babic","keksic","boric","bukic",
              "sarmic","balic","kruzic","hrenovkic",
              "beslic","boksic","krafnic","pecivic",
              "klavirkovic","kukumaric","sunkic","kolacic",
              "kovacic","prijestolonasljednikovic"]
```
the output should be "bk".

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def strange_coach(players):
	

Solutions:
from collections import Counter

def strange_coach(players):
	return ''.join(sorted((i for (i, j) in Counter(map(lambda x: x[0], players)).most_common() if j >= 5))) or 'forfeit'


def strange_coach(players):
	d = {l: 0 for l in map(chr, range(97, 123))}
	for i in players:
		d[i[0]] += 1
	r = ''.join(sorted((x for x in d if d[x] > 4)))
	return r if r != '' else 'forfeit'


def strange_coach(players):
	firsts = [player[0] for player in players]
	return ''.join(sorted((c for c in set(firsts) if firsts.count(c) >= 5))) or 'forfeit'


from collections import Counter
from string import ascii_lowercase

def strange_coach(players):
	first_letters = Counter((player[0] for player in players))
	return ''.join((c for c in ascii_lowercase if first_letters[c] >= 5)) or 'forfeit'


from string import ascii_lowercase as az

def strange_coach(players):
	d = dict.fromkeys(az, 0)
	for i in range(len(players)):
		d[players[i][0]] += 1
	s = ''.join([k for (k, v) in d.items() if v >= 5])
	return s if s else 'forfeit'


def strange_coach(players):
	letters = [p[0] for p in players]
	res = set((l for l in letters if letters.count(l) > 4))
	return ''.join(sorted(res)) if res else 'forfeit'


from itertools import groupby

def strange_coach(players):
	return ''.join((key for (key, group) in groupby(sorted(players), lambda x: x[0]) if len(list(group)) >= 5)) or 'forfeit'


from collections import Counter

def strange_coach(players):
	first_letters = (player[0] for player in players)
	counts = Counter(first_letters)
	at_least_five = ''.join(sorted((k for (k, v) in counts.items() if v > 4)))
	return at_least_five or 'forfeit'


strange_coach = lambda a: (lambda c: ''.join((k for k in sorted(c) if c[k] > 4)) or 'forfeit')(__import__('collections').Counter((w[0] for w in a)))


from collections import Counter

def strange_coach(players):
	return ''.join((k for (k, v) in Counter([p[0] for p in sorted(players)]).items() if v > 4)) or 'forfeit'