In this GinortS problem, You are given a string S that contains alphanumeric characters only. Your task is to sort the string S in the following manner that All sorted lowercase letters are ahead of uppercase letters. All sorted uppercase letters are ahead of digits. All sorted odd digits are ahead of sorted even digits.

## Problem solution in Python 2 programming.

```def f(ch):
res = ord(ch)
if 65 <= res <= 90:
res += 100
elif res <= 57:
res += 200
if res % 2 == 0:
res += 10
return res

S = raw_input().strip()
print reduce(lambda x,y: x + y, sorted(S, key=f), '')```

## Problem solution in Python 3 programming.

```def f(c):
code = 0
if c.isupper():
code = 10 ** 3
elif c.isdigit():
code = 10 ** 6
if ord(c) % 2 == 0:
code = 10 ** 9
return code + ord(c)

print(*sorted(input(), key=lambda c: f(c)), sep='')```

### Problem solution in pypy programming.

```# Enter your code here. Read input from STDIN. Print output to STDOUT
from string import ascii_lowercase, ascii_uppercase, ascii_letters

sortkey = ascii_letters + "1357902468"
print reduce(lambda x,y: x+y, sorted(raw_input(),key=sortkey.index))```

### Problem solution in pypy3 programming.

```# Enter your code here. Read input from STDIN. Print output to STDOUT
s = sorted(input())
lower = list(filter(lambda x: x.islower(),s))
upper = list(filter(lambda x: x.isupper(),s))
odd = list(filter(lambda x: x.isdigit() and int(x)%2 ==1, s))
even = list (filter(lambda x: x.isdigit() and int(x)%2 ==0,s))
print(*(lower + upper+odd+even), sep = "")```