# Introduction 

Ka ka ka cypher is a cypher used by small children in some country. When a girl wants to pass something to the other girls and there are some boys nearby, she can use Ka cypher. So only the other girls are able to understand her. 
She speaks using KA, ie.: 
`ka thi ka s ka bo ka y ka i ka s ka u ka gly` what simply means `this boy is ugly`. 


# Task 

Write a function `KaCokadekaMe` (`ka_co_ka_de_ka_me` in Python) that accepts a string word and returns encoded message using ka cypher. 
Our rules:
- The encoded word should start from `ka`.
- The `ka` goes after vowel (a,e,i,o,u)
- When there is multiple vowels together, the `ka` goes only after the last `vowel`
- When the word is finished by a vowel, do not add the `ka` after

# Input/Output

The `word` string consists of only lowercase and uppercase characters. There is only 1 word to convert - no white spaces.

# Example

```
KaCokadekaMe("a");  //=> "kaa"
KaCokadekaMe("ka");  //=> "kaka"
KaCokadekaMe("aa"); //=> "kaaa"  
KaCokadekaMe("Abbaa"); //=> kaAkabbaa
KaCokadekaMe("maintenance"); //=> kamaikantekanakance
KaCokadekaMe("Woodie"); //=> kaWookadie
KacokadekaMe("Incomprehensibilities"); //=> kaIkancokamprekahekansikabikalikatiekas
```

# Remark

Ka cypher's country residents, please don't hate me for simplifying the way how we divide the words into "syllables" in the Kata. I don't want to make it too hard for other nations ;-P

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def ka_co_ka_de_ka_me(word):
	

Solutions:
import re
KA_PATTERN = re.compile('(?![aeiou]+$)([aeiou]+)', re.I)

def ka_co_ka_de_ka_me(word):
	return 'ka' + KA_PATTERN.sub('\\1ka', word)


from functools import partial
from re import compile
ka_co_ka_de_ka_me = partial(compile('(?i)^|(?<=[aeiou])(?![aeiou]|$)').sub, 'ka')


def ka_co_ka_de_ka_me(word):
	prdel = ''
	for (i, x) in enumerate(word):
		if i != len(word):
			if x.lower() not in 'aeiou' and word[i - 1].lower() in 'aeiou' and (i != 0):
				prdel += 'ka'
		prdel += x
	return 'ka' + prdel


def ka_co_ka_de_ka_me(word, tete='ka'):
	for i in range(len(word) - 1):
		tete += word[i]
		if word[i] in 'aeiouAEIOU':
			if word[i + 1] not in 'aeiouAEIOU':
				tete += 'ka'
	return tete + word[-1]


import re

def ka_co_ka_de_ka_me(word):
	return 'ka' + re.sub('([aeiou]+)(?=[^aeiou])', '\\1ka', word, flags=re.I)


import re
r = re.compile('[aeiou]+', re.I)

def ka_co_ka_de_ka_me(word):
	word = 'ka' + r.sub(lambda m: m.group(0) + 'ka', word)
	return word[:-2] if word.endswith('ka') else word


import re

def ka_co_ka_de_ka_me(word):
	return 'ka' + re.sub('([aeiouAEIOU]+)([^aeiouAEIOU])', lambda x: x.group(1) + 'ka' + x.group(2), word)


ka_co_ka_de_ka_me = lambda s: __import__('re').sub('(?i)(\\b(?=\\w)|(?<=[aeiou])\\B(?![aeiou]))', 'ka', s)