def judge(S:str) -> str:

    lenS = len(S)

    # 1.両端が同じなら、残り文字3になるまで続く

    if S[0] == S[-1]:

        if (lenS-3)%2 == 1:

            return "First"

        else:

            return "Second"

        

    # 2.両端が違うなら、最初に交互になっている両端の文字が最終状態

    else:

        last = S[0]

        flag = 1

        for i in range(1,lenS):

            # 最後の文字を発見

            if flag and S[i]==S[-1]:

                last = last + S[-1]

                flag = 0

                

            # 最初の文字を発見

            elif (not flag) and S[i]==S[0]:

                last = last + S[0]

                flag = 1

                

        # 奇数手ならfirstの勝ち

        if (lenS - len(last))%2 == 1:

            return "First"

        else:

            return "Second"

        

S = eval(input())

print((judge(S)))
S = eval(input())



# 最初の状態

if len(S)%2 == 1:

    start = 1

else:

    start = 0

    

# 最後の状態

if S[0] == S[-1]:

    last = 1

else:

    last = 0

    

if (start+last)%2 == 1:

    print("First")

else:

    print("Second")
def judge(S: str) -> str:
    lenS = len(S)
    # 1.両端が同じなら、残り文字3になるまで続く
    if S[0] == S[-1]:
        if (lenS - 3) % 2 == 1:
            return "First"
        else:
            return "Second"
    # 2.両端が違うなら、最初に交互になっている両端の文字が最終状態
    else:
        last = S[0]
        flag = 1
        for i in range(1, lenS):
            # 最後の文字を発見
            if flag and S[i] == S[-1]:
                last = last + S[-1]
                flag = 0
            # 最初の文字を発見
            elif (not flag) and S[i] == S[0]:
                last = last + S[0]
                flag = 1
        # 奇数手ならfirstの勝ち
        if (lenS - len(last)) % 2 == 1:
            return "First"
        else:
            return "Second"


S = eval(input())
print((judge(S)))

S = eval(input())
# 最初の状態
if len(S) % 2 == 1:
    start = 1
else:
    start = 0
# 最後の状態
if S[0] == S[-1]:
    last = 1
else:
    last = 0
if (start + last) % 2 == 1:
    print("First")
else:
    print("Second")

-def judge(S: str) -> str: -    lenS = len(S) -    # 1.両端が同じなら、残り文字3になるまで続く -    if S[0] == S[-1]: -        if (lenS - 3) % 2 == 1: -            return "First" -        else: -            return "Second" -    # 2.両端が違うなら、最初に交互になっている両端の文字が最終状態 -    else: -        last = S[0] -        flag = 1 -        for i in range(1, lenS): -            # 最後の文字を発見 -            if flag and S[i] == S[-1]: -                last = last + S[-1] -                flag = 0 -            # 最初の文字を発見 -            elif (not flag) and S[i] == S[0]: -                last = last + S[0] -                flag = 1 -        # 奇数手ならfirstの勝ち -        if (lenS - len(last)) % 2 == 1: -            return "First" -        else: -            return "Second" - - -print((judge(S))) +# 最初の状態 +if len(S) % 2 == 1: +    start = 1 +else: +    start = 0 +# 最後の状態 +if S[0] == S[-1]: +    last = 1 +else: +    last = 0 +if (start + last) % 2 == 1: +    print("First") +else: +    print("Second")