stablegradients/pie-gem5-pairs huggingface dataset:
// Slower C++ solution:
#include<bits/stdc++.h>

#define rep(i,j,k) for(int i=(j);i<(k);i++)

#define mp make_pair

#define sz(a) (int)(a).size()

#define pb push_back

using namespace std;

typedef long long ll;

typedef pair<int,int> pii;

typedef pair<double,double> pdd;

typedef long double ld;

//----head----

char str[100005];

int main()

{

	scanf("%s",str);

	int n=strlen(str);

	int ans=(str[0]==str[n-1]);

	ans^=(n%2);

	puts(ans?"First":"Second");

	return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.270270067825505x):
#include<cstdio>

const int N=100001;

int main() {

    int n=3;

    char s[N];

    scanf("%s",s);

    while(s[n])n++;

    printf((s[0]==s[n-1] ^ n&1)?"First":"Second");

    return 0;

}
// Slower C++ solution:
#include <iostream>

#include <cstdlib>

#include <algorithm>

#include <cstdio>

#include <cmath>

#include <cstring>



using namespace std;



char s[100005];



int main() {

    scanf("%s",s);

    int len=strlen(s);

    if ((len&1)!=(s[0]==s[len-1])) printf("First\n"); else printf("Second\n");



    return 0;

}




// Faster C++ solution for the same problem (measured speedup: 5.27019666135382x):
#include<cstdio>

const int N=100001;

int main() {

    int n=3;

    char s[N];

    scanf("%s",s);

    while(s[n])n++;

    printf((s[0]==s[n-1] ^ n&1)?"First":"Second");

    return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>



using namespace std;

const int maxn=1e5+5;

char a[maxn];

int main()

{

    while(~scanf("%s", a))

    {

        int len=strlen(a);

        if(len&1)

        {

            if(a[0]==a[len-1])printf("Second\n");

            else printf("First\n");

        }

        else

        {

            if(a[0]==a[len-1])printf("First\n");

            else printf("Second\n");

        }

    }

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.273905935310806x):
#include<cstdio>

const int N=100001;

int main() {

    int n=3;

    char s[N];

    scanf("%s",s);

    while(s[n])n++;

    printf((s[0]==s[n-1] ^ n&1)?"First":"Second");

    return 0;

}
// Slower C++ solution:
#include<iostream>

#include <math.h>

#include <bits/stdc++.h>

#define ll long long

#define inf 0x3f3f3f3f

#define maxn 310000

using namespace std;

int vis[maxn];

char s[111111];

int main()

{

    int i,j,n,jj=0,sum=0,k,flag;

    cin>>s;

    n=strlen(s);

    if(n%2==0)

    {

        if(s[0]==s[n-1]) 

            printf("First\n");

        else printf("Second\n");

    }

    if(n%2!=0)

    {

        if(s[0]!=s[n-1]) 

            printf("First\n");

        else printf("Second\n");

    }

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.309881790228274x):
#include<cstdio>

const int N=100001;

int main() {

    int n=3;

    char s[N];

    scanf("%s",s);

    while(s[n])n++;

    printf((s[0]==s[n-1] ^ n&1)?"First":"Second");

    return 0;

}
// Slower C++ solution:
/*QAQ三连：以前的题都补了吗，今天的题都做了吗，不会的算法都会了吗*/

/*金桔退役三连：退役选手不学不会不练*/

#include <bits/stdc++.h>

#define LDQ 1000000007

#define QAQ 0x3f3f3f3f

#define PI 3.14159265358979323846

using namespace std;

int main()

{

    int i;

    char s[100001];

    scanf("%s",s);

    if(strlen(s)%2==0)

    {

        if(s[0]==s[strlen(s)-1])

        {

            printf("First");

        }

        else

        {

            printf("Second");

        }

    }

    else

    {

        if(s[0]==s[strlen(s)-1])

        {

            printf("Second");

        }

        else

        {

            printf("First");

        }

    }

    return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.312997603975888x):
#include<cstdio>

const int N=100001;

int main() {

    int n=3;

    char s[N];

    scanf("%s",s);

    while(s[n])n++;

    printf((s[0]==s[n-1] ^ n&1)?"First":"Second");

    return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int main(){

    string s;

    cin >> s;

    if(s[0] == s[s.size() - 1])

        cout << (s.size() & 1 ? "Second" : "First");

    else

        cout << (s.size() & 1 ? "First" : "Second");

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.363569981431735x):
#include<cstdio>

const int N=100001;

int main() {

    int n=3;

    char s[N];

    scanf("%s",s);

    while(s[n])n++;

    printf((s[0]==s[n-1] ^ n&1)?"First":"Second");

    return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int s1,s2,a;

char c[100010],c1,c2;

int main(){

	scanf("%s",c+1);

	a=strlen(c+1);

	c1=c[1],c2=c[a];

	if((c1==c2&&a%2==0)||c1!=c2&&a%2!=0) cout<<"First";

	else cout<<"Second"; 

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.281901248359446x):
#include<cstdio>

const int N=100001;

int main() {

    int n=3;

    char s[N];

    scanf("%s",s);

    while(s[n])n++;

    printf((s[0]==s[n-1] ^ n&1)?"First":"Second");

    return 0;

}
// Slower C++ solution:
#include <iostream>

using namespace std;



int main(){

	string s;

	cin >> s;

	int ans = s.size()-2;

	

	if(s[0]==s[s.size()-1]) ans-=1;

	if(ans&1) cout << "First";	//长度为奇数

	else cout << "Second"; 

}

// Faster C++ solution for the same problem (measured speedup: 5.319423709645022x):
#include<cstdio>

const int N=100001;

int main() {

    int n=3;

    char s[N];

    scanf("%s",s);

    while(s[n])n++;

    printf((s[0]==s[n-1] ^ n&1)?"First":"Second");

    return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

#define LL long long

using namespace std;

const int maxn=1e5+10;

int n;

char a[maxn];

int main()

{

    while(scanf("%s",a)!=EOF)

    {

        int ans=0;

        int len=strlen(a);

        for(int i=1; i<len-1; i++)

            if(a[i-1]!=a[i+1])ans++;

        if(ans==0)

        {

            printf("Second\n");

            continue;

        }

        if(a[0]!=a[len-1])printf("%s\n",len%2?"First":"Second");

        else printf("%s\n",len%2?"Second":"First");

    }

}




// Faster C++ solution for the same problem (measured speedup: 5.299579992576436x):
#include <cstdio>

#include <cstring>

char s[100003];

int main()

{

    scanf("%s",s);

    int l=strlen(s);

    if((s[0]==s[l-1])!=(l%2==0)) puts("Second");

	else puts("First");

}
// Slower C++ solution:
#include<iostream>

#include<cstring>

using namespace std;

int main()

{

    char s[100000];

    cin>>s;

    long long t=strlen(s);

    if(s[0]==s[strlen(s)-1]){

    	if(t%2==1) cout<<"Second"<<endl;

    	else cout<<"First"<<endl;

	}

	else{

		if(t%2==0) cout<<"Second"<<endl;

    	else cout<<"First"<<endl;

	}

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.339213379930782x):
#include<cstdio>

#include<cstring>

#include<cmath>

#include<algorithm>

using namespace std;

int n;

char s[100005];

int main()

{

	scanf("%s",s+1);

	n=strlen(s+1);

	if(s[1]==s[n])

	{

		if(n%2==0)

			puts("First");

		else

			puts("Second");

	}

	else

	{

		if(n%2==0)

			puts("Second");

		else

			puts("First");

	}

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

char a[100001]; 

int main()

{

	scanf("%s",a);

	int lena=strlen(a);

	if(a[0]==a[lena-1])

	{

		if((lena-2)%2==1)

			printf("Second");

		if((lena-2)%2==0)

			printf("First");

	}

	else{

		if((lena-2)%2==1)

			printf("First");

		if((lena-2)%2==0)

			printf("Second");

	}

} 

// Faster C++ solution for the same problem (measured speedup: 5.281100648714432x):
#include<cstdio>

#include<cstring>

#include<cmath>

#include<algorithm>

using namespace std;

int n;

char s[100005];

int main()

{

	scanf("%s",s+1);

	n=strlen(s+1);

	if(s[1]==s[n])

	{

		if(n%2==0)

			puts("First");

		else

			puts("Second");

	}

	else

	{

		if(n%2==0)

			puts("Second");

		else

			puts("First");

	}

	return 0;

}
// Slower C++ solution:
/*         _    _____         _

           \`,""   ,'7"r-..__/ \

          ,'\ `, ,',','    _/   \

         /   \  7 / /     (   \ |

        J     \/ j  L______\  / |

        L   __JF"""/""\"\_,    /

        L,-"| O|  f O |  L_  _/

        F   \_ /  \__/   `-  j|

            .-'    `"""    ,' |          _..====.._

            \__/         r"_  A        ,' _..---.._`,

             `-.______,,-L// / \  ___,' ,'_..:::.. `,`,

                      j   / / / 7"    `-<""=:'  '':. \ \

                     /   <,' /  F  . i , \   `,    :T W I

                     |    \,'  /    >X<  |     \   :| | L

                     |     `._/    ' ! ` |      I  :| |  G

                      \           \     /       |  :H T  |

                     __>-.__   __,-\   |        |  S P   |

                    /     /|   | \  \  \_       | 'A R   |

                   /   __/ |   |  L  L   \      K./ /    L

                  /   |    |   4  I  I    |    E./ /   ,'

                 J    \    I    L F  I    |    // / _,'

        _________|     |   F    |J   F    |   //_/-'

        \   __   |    /   J     |/  J     |  /="

        \\  \_\  \__,' \  F     |   F     |

        \\\_____________\/      F__/      F

         \\| ¼ÆËã»ú±à³Ì |_____/  (______/

          \/´ÓÈëÃÅµ½ÈëÍÁ/

*/

#include<cstdio>

#include<iostream>

#include<algorithm>

#include<cstring>

#include<string> 

using namespace std;

int main(){

	string s;

	cin>>s;

	int len=s.length();

	if(s[0]==s[len-1]){

		if(len%2==1){

			cout<<"Second";

			return 0;

		}

		else{

			cout<<"First";

			return 0;

		}

	}

	else{

		if(len%2==1){

			cout<<"First";

			return 0;

		}

		else{

			cout<<"Second";

			return 0;

		}

	}

	return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.369612048619072x):
#include<cstdio>

#include<cstring>

#include<cmath>

#include<algorithm>

using namespace std;

int n;

char s[100005];

int main()

{

	scanf("%s",s+1);

	n=strlen(s+1);

	if(s[1]==s[n])

	{

		if(n%2==0)

			puts("First");

		else

			puts("Second");

	}

	else

	{

		if(n%2==0)

			puts("Second");

		else

			puts("First");

	}

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

char a[100005];

int main()

{

	scanf("%s",&a);

	if(a[0]==a[strlen(a)-1]){

		if(strlen(a)%2!=0){

			printf("Second\n");

		}

		else{

			printf("First\n");

		}

	}

	else{

		if(strlen(a)%2!=0){

			printf("First\n");

		}

		else{

			printf("Second\n");

		}

	}

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.278177074006325x):
#include<cstdio>

#include<cstring>

#include<cmath>

#include<algorithm>

using namespace std;

int n;

char s[100005];

int main()

{

	scanf("%s",s+1);

	n=strlen(s+1);

	if(s[1]==s[n])

	{

		if(n%2==0)

			puts("First");

		else

			puts("Second");

	}

	else

	{

		if(n%2==0)

			puts("Second");

		else

			puts("First");

	}

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

string s;



int main()

{

    cin >> s;

    int len = s.length();

    if(len & 1)

    {

        if(s[0] == s[len - 1]) cout << "Second";

        else cout << "First";

    }

    else

    {

        if(s[0] ^ s[len - 1]) cout << "Second";

        else cout << "First";

    }

}

// Faster C++ solution for the same problem (measured speedup: 5.33224538479641x):
#include<cstdio>

#include<cstring>

#include<cmath>

#include<algorithm>

using namespace std;

int n;

char s[100005];

int main()

{

	scanf("%s",s+1);

	n=strlen(s+1);

	if(s[1]==s[n])

	{

		if(n%2==0)

			puts("First");

		else

			puts("Second");

	}

	else

	{

		if(n%2==0)

			puts("Second");

		else

			puts("First");

	}

	return 0;

}
// Slower C++ solution:
#include<iostream>

#include<cstring>

using namespace std;

int main()

{

    char s[100000];

    cin>>s;

    long long t=strlen(s);

    if(s[0]==s[strlen(s)-1]){

    	if(t%2==1) cout<<"Second"<<endl;

    	else cout<<"First"<<endl;

	}

	else{

		if(t%2==0) cout<<"Second"<<endl;

    	else cout<<"First"<<endl;

	}

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.347882818409937x):
#include <cstdio>

#include <cstring>

char s[100003];

int main()

{

    scanf("%s",s);

    int l=strlen(s);

    if((s[0]==s[l-1])!=(l%2==0)) puts("Second");

	else puts("First");

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

char a[100001]; 

int main()

{

	scanf("%s",a);

	int lena=strlen(a);

	if(a[0]==a[lena-1])

	{

		if((lena-2)%2==1)

			printf("Second");

		if((lena-2)%2==0)

			printf("First");

	}

	else{

		if((lena-2)%2==1)

			printf("First");

		if((lena-2)%2==0)

			printf("Second");

	}

} 

// Faster C++ solution for the same problem (measured speedup: 5.289675727835328x):
#include <cstdio>

#include <cstring>

char s[100003];

int main()

{

    scanf("%s",s);

    int l=strlen(s);

    if((s[0]==s[l-1])!=(l%2==0)) puts("Second");

	else puts("First");

}
// Slower C++ solution:
/*         _    _____         _

           \`,""   ,'7"r-..__/ \

          ,'\ `, ,',','    _/   \

         /   \  7 / /     (   \ |

        J     \/ j  L______\  / |

        L   __JF"""/""\"\_,    /

        L,-"| O|  f O |  L_  _/

        F   \_ /  \__/   `-  j|

            .-'    `"""    ,' |          _..====.._

            \__/         r"_  A        ,' _..---.._`,

             `-.______,,-L// / \  ___,' ,'_..:::.. `,`,

                      j   / / / 7"    `-<""=:'  '':. \ \

                     /   <,' /  F  . i , \   `,    :T W I

                     |    \,'  /    >X<  |     \   :| | L

                     |     `._/    ' ! ` |      I  :| |  G

                      \           \     /       |  :H T  |

                     __>-.__   __,-\   |        |  S P   |

                    /     /|   | \  \  \_       | 'A R   |

                   /   __/ |   |  L  L   \      K./ /    L

                  /   |    |   4  I  I    |    E./ /   ,'

                 J    \    I    L F  I    |    // / _,'

        _________|     |   F    |J   F    |   //_/-'

        \   __   |    /   J     |/  J     |  /="

        \\  \_\  \__,' \  F     |   F     |

        \\\_____________\/      F__/      F

         \\| ¼ÆËã»ú±à³Ì |_____/  (______/

          \/´ÓÈëÃÅµ½ÈëÍÁ/

*/

#include<cstdio>

#include<iostream>

#include<algorithm>

#include<cstring>

#include<string> 

using namespace std;

int main(){

	string s;

	cin>>s;

	int len=s.length();

	if(s[0]==s[len-1]){

		if(len%2==1){

			cout<<"Second";

			return 0;

		}

		else{

			cout<<"First";

			return 0;

		}

	}

	else{

		if(len%2==1){

			cout<<"First";

			return 0;

		}

		else{

			cout<<"Second";

			return 0;

		}

	}

	return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.378330846314518x):
#include <cstdio>

#include <cstring>

char s[100003];

int main()

{

    scanf("%s",s);

    int l=strlen(s);

    if((s[0]==s[l-1])!=(l%2==0)) puts("Second");

	else puts("First");

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

char a[100005];

int main()

{

	scanf("%s",&a);

	if(a[0]==a[strlen(a)-1]){

		if(strlen(a)%2!=0){

			printf("Second\n");

		}

		else{

			printf("First\n");

		}

	}

	else{

		if(strlen(a)%2!=0){

			printf("First\n");

		}

		else{

			printf("Second\n");

		}

	}

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.286747406032609x):
#include <cstdio>

#include <cstring>

char s[100003];

int main()

{

    scanf("%s",s);

    int l=strlen(s);

    if((s[0]==s[l-1])!=(l%2==0)) puts("Second");

	else puts("First");

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

string s;



int main()

{

    cin >> s;

    int len = s.length();

    if(len & 1)

    {

        if(s[0] == s[len - 1]) cout << "Second";

        else cout << "First";

    }

    else

    {

        if(s[0] ^ s[len - 1]) cout << "Second";

        else cout << "First";

    }

}

// Faster C++ solution for the same problem (measured speedup: 5.34090350913604x):
#include <cstdio>

#include <cstring>

char s[100003];

int main()

{

    scanf("%s",s);

    int l=strlen(s);

    if((s[0]==s[l-1])!=(l%2==0)) puts("Second");

	else puts("First");

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

string a;

int main()

{

	cin>>a;

	int l=a.size();

	if(a[0]==a[l-1])

		if(l&1) printf("Second\n");

		else printf("First\n");

	else 

		if(l&1) printf("First\n");

		else printf("Second\n");

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.3278694192387865x):
#include <cstdio>

#include <cstring>

char s[100003];

int main()

{

    scanf("%s",s);

    int l=strlen(s);

    if((s[0]==s[l-1])!=(l%2==0)) puts("Second");

	else puts("First");

}
// Slower C++ solution:
#include<iostream>

#include<cstring>

using namespace std;

int main()

{

    char s[100000];

    cin>>s;

    long long t=strlen(s);

    if(s[0]==s[strlen(s)-1]){

    	if(t%2==1) cout<<"Second"<<endl;

    	else cout<<"First"<<endl;

	}

	else{

		if(t%2==0) cout<<"Second"<<endl;

    	else cout<<"First"<<endl;

	}

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.292767772627459x):
#include <cstdio>

#include <cstring>

int Len;

char s[ 100005 ];

int main() {

	scanf ("%s", s);

	Len = strlen(s);

	printf ("%s\n", ((Len % 2 == 1) ^ (s[ 0 ] == s[ Len - 1 ])) ? "First" : "Second");

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

char a[100001]; 

int main()

{

	scanf("%s",a);

	int lena=strlen(a);

	if(a[0]==a[lena-1])

	{

		if((lena-2)%2==1)

			printf("Second");

		if((lena-2)%2==0)

			printf("First");

	}

	else{

		if((lena-2)%2==1)

			printf("First");

		if((lena-2)%2==0)

			printf("Second");

	}

} 

// Faster C++ solution for the same problem (measured speedup: 5.235160561775503x):
#include <cstdio>

#include <cstring>

int Len;

char s[ 100005 ];

int main() {

	scanf ("%s", s);

	Len = strlen(s);

	printf ("%s\n", ((Len % 2 == 1) ^ (s[ 0 ] == s[ Len - 1 ])) ? "First" : "Second");

	return 0;

}
// Slower C++ solution:
/*         _    _____         _

           \`,""   ,'7"r-..__/ \

          ,'\ `, ,',','    _/   \

         /   \  7 / /     (   \ |

        J     \/ j  L______\  / |

        L   __JF"""/""\"\_,    /

        L,-"| O|  f O |  L_  _/

        F   \_ /  \__/   `-  j|

            .-'    `"""    ,' |          _..====.._

            \__/         r"_  A        ,' _..---.._`,

             `-.______,,-L// / \  ___,' ,'_..:::.. `,`,

                      j   / / / 7"    `-<""=:'  '':. \ \

                     /   <,' /  F  . i , \   `,    :T W I

                     |    \,'  /    >X<  |     \   :| | L

                     |     `._/    ' ! ` |      I  :| |  G

                      \           \     /       |  :H T  |

                     __>-.__   __,-\   |        |  S P   |

                    /     /|   | \  \  \_       | 'A R   |

                   /   __/ |   |  L  L   \      K./ /    L

                  /   |    |   4  I  I    |    E./ /   ,'

                 J    \    I    L F  I    |    // / _,'

        _________|     |   F    |J   F    |   //_/-'

        \   __   |    /   J     |/  J     |  /="

        \\  \_\  \__,' \  F     |   F     |

        \\\_____________\/      F__/      F

         \\| ¼ÆËã»ú±à³Ì |_____/  (______/

          \/´ÓÈëÃÅµ½ÈëÍÁ/

*/

#include<cstdio>

#include<iostream>

#include<algorithm>

#include<cstring>

#include<string> 

using namespace std;

int main(){

	string s;

	cin>>s;

	int len=s.length();

	if(s[0]==s[len-1]){

		if(len%2==1){

			cout<<"Second";

			return 0;

		}

		else{

			cout<<"First";

			return 0;

		}

	}

	else{

		if(len%2==1){

			cout<<"First";

			return 0;

		}

		else{

			cout<<"Second";

			return 0;

		}

	}

	return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.322902004491826x):
#include <cstdio>

#include <cstring>

int Len;

char s[ 100005 ];

int main() {

	scanf ("%s", s);

	Len = strlen(s);

	printf ("%s\n", ((Len % 2 == 1) ^ (s[ 0 ] == s[ Len - 1 ])) ? "First" : "Second");

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

char a[100005];

int main()

{

	scanf("%s",&a);

	if(a[0]==a[strlen(a)-1]){

		if(strlen(a)%2!=0){

			printf("Second\n");

		}

		else{

			printf("First\n");

		}

	}

	else{

		if(strlen(a)%2!=0){

			printf("First\n");

		}

		else{

			printf("Second\n");

		}

	}

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.232262419128854x):
#include <cstdio>

#include <cstring>

int Len;

char s[ 100005 ];

int main() {

	scanf ("%s", s);

	Len = strlen(s);

	printf ("%s\n", ((Len % 2 == 1) ^ (s[ 0 ] == s[ Len - 1 ])) ? "First" : "Second");

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

string s;



int main()

{

    cin >> s;

    int len = s.length();

    if(len & 1)

    {

        if(s[0] == s[len - 1]) cout << "Second";

        else cout << "First";

    }

    else

    {

        if(s[0] ^ s[len - 1]) cout << "Second";

        else cout << "First";

    }

}

// Faster C++ solution for the same problem (measured speedup: 5.2858603918088445x):
#include <cstdio>

#include <cstring>

int Len;

char s[ 100005 ];

int main() {

	scanf ("%s", s);

	Len = strlen(s);

	printf ("%s\n", ((Len % 2 == 1) ^ (s[ 0 ] == s[ Len - 1 ])) ? "First" : "Second");

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

string a;

int main()

{

	cin>>a;

	int l=a.size();

	if(a[0]==a[l-1])

		if(l&1) printf("Second\n");

		else printf("First\n");

	else 

		if(l&1) printf("First\n");

		else printf("Second\n");

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.272960630670432x):
#include <cstdio>

#include <cstring>

int Len;

char s[ 100005 ];

int main() {

	scanf ("%s", s);

	Len = strlen(s);

	printf ("%s\n", ((Len % 2 == 1) ^ (s[ 0 ] == s[ Len - 1 ])) ? "First" : "Second");

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int main() {

	string s;

	cin>>s;

	if(s[0]==s[s.size()-1]) {

		if(s.size()%2==0) {

			cout<<"First"<<endl;

		} else {

			cout<<"Second"<<endl;

		}

	}

	if(s[0]!=s[s.size()-1]) {

		if(s.size()%2==1) {

			cout<<"First"<<endl;

		} else {

			cout<<"Second"<<endl;

		}

	}

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.337395091341404x):
#include <cstdio>

#include <cstring>

int Len;

char s[ 100005 ];

int main() {

	scanf ("%s", s);

	Len = strlen(s);

	printf ("%s\n", ((Len % 2 == 1) ^ (s[ 0 ] == s[ Len - 1 ])) ? "First" : "Second");

	return 0;

}
// Slower C++ solution:
#include<iostream>

#include<cstdio>

#include<cstring>



using namespace std;



char s[100000+5];



int main()

{

	scanf("%s",s+1);int len=strlen(s+1);

	if(s[1]==s[len] && len%2==1) puts("Second");

	else if(s[1]==s[len] && len%2==0)  puts("First");

	else if(s[1]!=s[len] && len%2==1) puts("First");

	else if(s[1]!=s[len] && len%2==0)puts("Second");

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.230792793146014x):
#include <cstdio>

#include <cstring>

int Len;

char s[ 100005 ];

int main() {

	scanf ("%s", s);

	Len = strlen(s);

	printf ("%s\n", ((Len % 2 == 1) ^ (s[ 0 ] == s[ Len - 1 ])) ? "First" : "Second");

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

int main()

{

  string a;

  cin>>a;

  int k=a.length();

  if(a[0]==a[k-1])

  {

    if(k%2==0)

	{

      cout<<"First"<<endl;

      return 0;

    }

    else

	{

      cout<<"Second"<<endl;

      return 0;

    }

  }

  else

  {

    if(k%2==0)

	{

      cout<<"Second"<<endl;

      return 0;

    }

    else

	{

      cout<<"First"<<endl;

      return 0;

    }

  }

  return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.292952657321396x):
#include <cstdio>

#include <cstring>

int Len;

char s[ 100005 ];

int main() {

	scanf ("%s", s);

	Len = strlen(s);

	printf ("%s\n", ((Len % 2 == 1) ^ (s[ 0 ] == s[ Len - 1 ])) ? "First" : "Second");

	return 0;

}