DropCaps means that the first letter of the starting word of the paragraph should be in caps and the remaining lowercase, just like you see in the newspaper. 

But for a change, let's do that for each and every word of the given String. Your task is to capitalize every word that has length greater than 2, leaving smaller words as they are.

*should work also on Leading and Trailing Spaces and caps.

```python
drop_cap('apple') => "Apple"
drop_cap('apple of banana'); => "Apple of Banana"
drop_cap('one   space'); => "One   Space" 
drop_cap('   space WALK   '); => "   Space Walk   " 
```

**Note:** you will be provided atleast one word and should take string as input and return string as output.

Difficulty: introductory

Starter code:

def drop_cap(str_):
	

Solutions:
def drop_cap(str_):
    return ' '.join( w.capitalize() if len(w) > 2 else w for w in str_.split(' ') )


import re

def drop_cap(s):
    return re.sub(r'\w{3,}', lambda m: m[0].title(), s)

def drop_cap(str_):
    return " ".join([i[0].upper() + i[1::].lower() if len(i) > 2 else i for i in str_.split(" ")])

def drop_cap(stg):
    return " ".join(w.capitalize() if len(w) > 2 else w for w in stg.split(" "))

def drop_cap(s):
    return ' '.join(x.title() if len(x) > 2 else x for x in s.split(' '))

import re


def r(m):
    s = m.group()
    if len(s) > 2:
        s = s.capitalize()
    return s

def drop_cap(s):
    return re.sub('\w+', r, s)

def drop_cap(str_):
    return " ".join(s.capitalize() if len(s) > 2 else s for s in str_.split(" "))

def drop_cap(str_):
    return " ".join(map(lambda x: x.title() if len(x) > 2 else x, str_.split(" ")))

import re

def drop_cap(s):
    return re.sub(r'\S{3,}', lambda m: m.group(0).title(), s)