John has invited some friends. His list is:
```
s = "Fred:Corwill;Wilfred:Corwill;Barney:Tornbull;Betty:Tornbull;Bjon:Tornbull;Raphael:Corwill;Alfred:Corwill";
```

Could you make a program that 
- makes this string uppercase
- gives it sorted in alphabetical order by last name. 

When the last names are the same, sort them by first name.
Last name and first name of a guest come in the result between parentheses separated by a comma.

So the result of function `meeting(s)` will be:
```
"(CORWILL, ALFRED)(CORWILL, FRED)(CORWILL, RAPHAEL)(CORWILL, WILFRED)(TORNBULL, BARNEY)(TORNBULL, BETTY)(TORNBULL, BJON)"
```
It can happen that in two distinct families with the same family name two people have the same first name too.

# Notes
- You can see another examples in the "Sample tests".

Difficulty: introductory

Starter code:

def meeting(s):
	

Solutions:
def meeting(s):
    return ''.join(sorted('({1}, {0})'.format(*(x.split(':'))) for x in s.upper().split(';')))

def meeting(s):
  s = s.upper()
  s = s.split(';')
  array = []
  string = ""
  for i in s:
    i = i.split(':')
    string = '('+i[1]+', '+i[0]+')'
    array.append(string)
  array.sort()
  output = ""
  for j in array:
    output += j
  return output

def meeting(s):
    return ''.join(f'({a}, {b})' for a, b in sorted(name.split(':')[::-1] for name in s.upper().split(';')))

def meeting(s):
    names = s.upper().split(';')
    return ''.join(sorted('({1}, {0})'.format(*(n.split(':'))) for n in names))

meeting=lambda s:''.join(sorted('(%s, %s)'%tuple(e.split(':')[::-1])for e in s.upper().split(';')))

import re

def meeting(s):
    return  "".join(
                sorted(
                    re.sub("(\w+):(\w+);?", r"(\2, \1);", s.upper())
                        .split(";")
                )
            )

def meeting(s):
    return ''.join(sorted(('({1}, {0})'.format(*pair.split(':')) for pair in s.upper().split(';'))))

from functools import reduce 

def meeting(s):
    people = [ i.split(":")[::-1] for i in s.upper().split(";") ]
    people.sort(key=lambda x: x[0]+" "+x[1])
    return reduce(lambda acc, x: acc+"("+x[0]+", "+x[1]+")", people, "")


from functools import cmp_to_key

def meeting(s):
    def comp(a, b):
        if a[1] == b[1]:
            return -1 if a[0] < b[0] else 1
        else:
            return -1 if a[1] < b[1] else 1
    w = map(lambda x : x.split(":"), s.upper().split(";"))
    u = sorted(w, key = cmp_to_key(comp))
    return "".join(map(lambda a : "(" + a[1] + ", " + a[0] + ")", u))

meeting = lambda s: "".join("({}, {})".format(ln, fn) 
    for ln, fn in sorted(p.split(":")[::-1] for p in s.upper().split(";")))