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

using namespace std;

 

int main()

{

    string s;

    while(cin>>s)

    {

        cout << ( (s[0]==s[s.length()-1])^(s.length()%2)?"First":"Second") << endl;

    }

    return 0;

}

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

char s[100005];

inline int getstring(char *_s){

	int l=0;

	for(char ch=getchar();ch!='\n';ch=getchar(),l++)

		_s[l]=ch;

	return l;

}

int main(){

	int l=getstring(s);

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

	return 0;

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

#include<iostream>

using namespace std;

string s;

int main(){

	cin>>s;

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

	  if(s.size()%2==1) cout<<"Second";

	  else cout<<"First";

	else

	  if(s.size()%2==1) cout<<"First";

	  else cout<<"Second";

}

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

char s[100005];

inline int getstring(char *_s){

	int l=0;

	for(char ch=getchar();ch!='\n';ch=getchar(),l++)

		_s[l]=ch;

	return l;

}

int main(){

	int l=getstring(s);

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

	return 0;

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

using namespace std;

char s[100001],ss[100001];

int main()

{    

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

	register int sum=0,ans=0,l=strlen(s+1);

	while(1)

	{

		for(register int i=2;i<l;++i)

		{

			if(s[i]!='\0')

			{

				register int x=i-1;

				while(s[x]=='\0')

					--x;

				if(s[x]!=s[i+1])

					s[i]='\0',++sum;

            }        

		}        

		register int cnt=0;

		for(register int i=1;i<=l;++i)

			if(s[i]!='\0')

				ss[++cnt]=s[i];

		for(register int i=1;i<=l;++i)

			s[i]=ss[i];

		l=cnt;

		if(sum==ans)

			break;

		ans=sum;

	}    

	if(sum%2) return printf("First"),0;

	else return printf("Second"),0;

} 

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

char s[100005];

inline int getstring(char *_s){

	int l=0;

	for(char ch=getchar();ch!='\n';ch=getchar(),l++)

		_s[l]=ch;

	return l;

}

int main(){

	int l=getstring(s);

	printf("%s",(s[0]==s[l-1])^(l%2)?"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.286024888075854x):
#include <cstdio>

char s[100005];

inline int getstring(char *_s){

	int l=0;

	for(char ch=getchar();ch!='\n';ch=getchar(),l++)

		_s[l]=ch;

	return l;

}

int main(){

	int l=getstring(s);

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

	return 0;

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

using namespace std;

int main(){

	string d;

	cin>>d;

	int tot=0;

	int g=0;

	int l=d.size();

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

	{

		if(l%2==0)

		cout<<"First";

		else cout<<"Second";

	}

	else{

		if(l%2==1)cout<<"First";

		else cout<<"Second";

	}

	return 0;

}

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

char s[100005];

inline int getstring(char *_s){

	int l=0;

	for(char ch=getchar();ch!='\n';ch=getchar(),l++)

		_s[l]=ch;

	return l;

}

int main(){

	int l=getstring(s);

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

	return 0;

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

using namespace std;

 

int main()

{

    string s;

    while(cin>>s)

    {

        cout << ( (s[0]==s[s.length()-1])^(s.length()%2)?"First":"Second") << endl;

    }

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.14316760733754x):
#include<stdio.h>

#include<string.h>

#include<math.h>

#include<stdlib.h>

#include<algorithm>

using namespace std;

int main()

{

    char s[100005], ss[100005];

    scanf("%s", s);

    int sum=0, ans=0, len=strlen(s);

    while(1)

    {

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

        {

            if(s[i]!='\0')

            {

                int x=i-1; 

                while(s[x]=='\0')   x--;

                if(s[x]!=s[i+1])

                {

                    s[i]='\0';

                    sum++;

                }

            }

        }

        int cnt=0;

        for(int i=0;i<len;i++)

            if(s[i]!='\0')

                ss[cnt++]=s[i];

        for(int i=0;i<len;i++)

            s[i]=ss[i];

        len=cnt;

        if(sum==ans)

            break;

        ans=sum;

    }

    if(sum%2)

        printf("First\n");

    else

        printf("Second\n");

    return 0;

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

#include<iostream>

using namespace std;

string s;

int main(){

	cin>>s;

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

	  if(s.size()%2==1) cout<<"Second";

	  else cout<<"First";

	else

	  if(s.size()%2==1) cout<<"First";

	  else cout<<"Second";

}

// Faster C++ solution for the same problem (measured speedup: 5.092620135938632x):
#include<stdio.h>

#include<string.h>

#include<math.h>

#include<stdlib.h>

#include<algorithm>

using namespace std;

int main()

{

    char s[100005], ss[100005];

    scanf("%s", s);

    int sum=0, ans=0, len=strlen(s);

    while(1)

    {

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

        {

            if(s[i]!='\0')

            {

                int x=i-1; 

                while(s[x]=='\0')   x--;

                if(s[x]!=s[i+1])

                {

                    s[i]='\0';

                    sum++;

                }

            }

        }

        int cnt=0;

        for(int i=0;i<len;i++)

            if(s[i]!='\0')

                ss[cnt++]=s[i];

        for(int i=0;i<len;i++)

            s[i]=ss[i];

        len=cnt;

        if(sum==ans)

            break;

        ans=sum;

    }

    if(sum%2)

        printf("First\n");

    else

        printf("Second\n");

    return 0;

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

using namespace std;

char s[100001],ss[100001];

int main()

{    

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

	register int sum=0,ans=0,l=strlen(s+1);

	while(1)

	{

		for(register int i=2;i<l;++i)

		{

			if(s[i]!='\0')

			{

				register int x=i-1;

				while(s[x]=='\0')

					--x;

				if(s[x]!=s[i+1])

					s[i]='\0',++sum;

            }        

		}        

		register int cnt=0;

		for(register int i=1;i<=l;++i)

			if(s[i]!='\0')

				ss[++cnt]=s[i];

		for(register int i=1;i<=l;++i)

			s[i]=ss[i];

		l=cnt;

		if(sum==ans)

			break;

		ans=sum;

	}    

	if(sum%2) return printf("First"),0;

	else return printf("Second"),0;

} 

// Faster C++ solution for the same problem (measured speedup: 5.04346539923199x):
#include<stdio.h>

#include<string.h>

#include<math.h>

#include<stdlib.h>

#include<algorithm>

using namespace std;

int main()

{

    char s[100005], ss[100005];

    scanf("%s", s);

    int sum=0, ans=0, len=strlen(s);

    while(1)

    {

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

        {

            if(s[i]!='\0')

            {

                int x=i-1; 

                while(s[x]=='\0')   x--;

                if(s[x]!=s[i+1])

                {

                    s[i]='\0';

                    sum++;

                }

            }

        }

        int cnt=0;

        for(int i=0;i<len;i++)

            if(s[i]!='\0')

                ss[cnt++]=s[i];

        for(int i=0;i<len;i++)

            s[i]=ss[i];

        len=cnt;

        if(sum==ans)

            break;

        ans=sum;

    }

    if(sum%2)

        printf("First\n");

    else

        printf("Second\n");

    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.051693020895029x):
#include<stdio.h>

#include<string.h>

#include<math.h>

#include<stdlib.h>

#include<algorithm>

using namespace std;

int main()

{

    char s[100005], ss[100005];

    scanf("%s", s);

    int sum=0, ans=0, len=strlen(s);

    while(1)

    {

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

        {

            if(s[i]!='\0')

            {

                int x=i-1; 

                while(s[x]=='\0')   x--;

                if(s[x]!=s[i+1])

                {

                    s[i]='\0';

                    sum++;

                }

            }

        }

        int cnt=0;

        for(int i=0;i<len;i++)

            if(s[i]!='\0')

                ss[cnt++]=s[i];

        for(int i=0;i<len;i++)

            s[i]=ss[i];

        len=cnt;

        if(sum==ans)

            break;

        ans=sum;

    }

    if(sum%2)

        printf("First\n");

    else

        printf("Second\n");

    return 0;

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

using namespace std;

int main(){

	string d;

	cin>>d;

	int tot=0;

	int g=0;

	int l=d.size();

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

	{

		if(l%2==0)

		cout<<"First";

		else cout<<"Second";

	}

	else{

		if(l%2==1)cout<<"First";

		else cout<<"Second";

	}

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.128957448147215x):
#include<stdio.h>

#include<string.h>

#include<math.h>

#include<stdlib.h>

#include<algorithm>

using namespace std;

int main()

{

    char s[100005], ss[100005];

    scanf("%s", s);

    int sum=0, ans=0, len=strlen(s);

    while(1)

    {

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

        {

            if(s[i]!='\0')

            {

                int x=i-1; 

                while(s[x]=='\0')   x--;

                if(s[x]!=s[i+1])

                {

                    s[i]='\0';

                    sum++;

                }

            }

        }

        int cnt=0;

        for(int i=0;i<len;i++)

            if(s[i]!='\0')

                ss[cnt++]=s[i];

        for(int i=0;i<len;i++)

            s[i]=ss[i];

        len=cnt;

        if(sum==ans)

            break;

        ans=sum;

    }

    if(sum%2)

        printf("First\n");

    else

        printf("Second\n");

    return 0;

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

using namespace std;

 

int main()

{

    string s;

    while(cin>>s)

    {

        cout << ( (s[0]==s[s.length()-1])^(s.length()%2)?"First":"Second") << endl;

    }

    return 0;

}

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

#include<cstring>

int main()

{

	char c[1000000];

	scanf("%s",&c);

	int n=strlen(c);

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

	if (n%2==0)

	printf("First");

	else

	printf("Second");

	else

	if (n%2!=0)

	printf("First");

	else

	printf("Second");

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

#include<iostream>

using namespace std;

string s;

int main(){

	cin>>s;

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

	  if(s.size()%2==1) cout<<"Second";

	  else cout<<"First";

	else

	  if(s.size()%2==1) cout<<"First";

	  else cout<<"Second";

}

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

#include<cstring>

int main()

{

	char c[1000000];

	scanf("%s",&c);

	int n=strlen(c);

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

	if (n%2==0)

	printf("First");

	else

	printf("Second");

	else

	if (n%2!=0)

	printf("First");

	else

	printf("Second");

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

using namespace std;

char s[100001],ss[100001];

int main()

{    

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

	register int sum=0,ans=0,l=strlen(s+1);

	while(1)

	{

		for(register int i=2;i<l;++i)

		{

			if(s[i]!='\0')

			{

				register int x=i-1;

				while(s[x]=='\0')

					--x;

				if(s[x]!=s[i+1])

					s[i]='\0',++sum;

            }        

		}        

		register int cnt=0;

		for(register int i=1;i<=l;++i)

			if(s[i]!='\0')

				ss[++cnt]=s[i];

		for(register int i=1;i<=l;++i)

			s[i]=ss[i];

		l=cnt;

		if(sum==ans)

			break;

		ans=sum;

	}    

	if(sum%2) return printf("First"),0;

	else return printf("Second"),0;

} 

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

#include<cstring>

int main()

{

	char c[1000000];

	scanf("%s",&c);

	int n=strlen(c);

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

	if (n%2==0)

	printf("First");

	else

	printf("Second");

	else

	if (n%2!=0)

	printf("First");

	else

	printf("Second");

}
// 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: 4.697361024294562x):
#include<cstdio>

#include<cstring>

int main()

{

	char c[1000000];

	scanf("%s",&c);

	int n=strlen(c);

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

	if (n%2==0)

	printf("First");

	else

	printf("Second");

	else

	if (n%2!=0)

	printf("First");

	else

	printf("Second");

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

using namespace std;

int main(){

	string d;

	cin>>d;

	int tot=0;

	int g=0;

	int l=d.size();

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

	{

		if(l%2==0)

		cout<<"First";

		else cout<<"Second";

	}

	else{

		if(l%2==1)cout<<"First";

		else cout<<"Second";

	}

	return 0;

}

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

#include<cstring>

int main()

{

	char c[1000000];

	scanf("%s",&c);

	int n=strlen(c);

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

	if (n%2==0)

	printf("First");

	else

	printf("Second");

	else

	if (n%2!=0)

	printf("First");

	else

	printf("Second");

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

using namespace std;

 

int main()

{

    string s;

    while(cin>>s)

    {

        cout << ( (s[0]==s[s.length()-1])^(s.length()%2)?"First":"Second") << endl;

    }

    return 0;

}

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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

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

#include<iostream>

using namespace std;

string s;

int main(){

	cin>>s;

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

	  if(s.size()%2==1) cout<<"Second";

	  else cout<<"First";

	else

	  if(s.size()%2==1) cout<<"First";

	  else cout<<"Second";

}

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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

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

using namespace std;

char s[100001],ss[100001];

int main()

{    

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

	register int sum=0,ans=0,l=strlen(s+1);

	while(1)

	{

		for(register int i=2;i<l;++i)

		{

			if(s[i]!='\0')

			{

				register int x=i-1;

				while(s[x]=='\0')

					--x;

				if(s[x]!=s[i+1])

					s[i]='\0',++sum;

            }        

		}        

		register int cnt=0;

		for(register int i=1;i<=l;++i)

			if(s[i]!='\0')

				ss[++cnt]=s[i];

		for(register int i=1;i<=l;++i)

			s[i]=ss[i];

		l=cnt;

		if(sum==ans)

			break;

		ans=sum;

	}    

	if(sum%2) return printf("First"),0;

	else return printf("Second"),0;

} 

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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	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.0599232011065975x):
#include<algorithm>

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

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

using namespace std;

int main(){

	string d;

	cin>>d;

	int tot=0;

	int g=0;

	int l=d.size();

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

	{

		if(l%2==0)

		cout<<"First";

		else cout<<"Second";

	}

	else{

		if(l%2==1)cout<<"First";

		else cout<<"Second";

	}

	return 0;

}

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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

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

#include<string>

#include<iostream>

#include<algorithm>

#include<cmath>

#include<vector>

#define inf 99999999

using namespace std;

typedef double db;

typedef long long ll;

string s;

int main()

{

	cin>>s;

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

		if(s.size()&1)

			cout<<"Second"<<endl;

		else

			cout<<"First"<<endl; 

	else

		if(s.size()&1)

			cout<<"First"<<endl;

		else

			cout<<"Second"<<endl;

	return 0;

}




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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

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

#include<string>

using namespace std;

int main()

{

    string s;

    cin>>s;

    int l=s.length();

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

	{

        if(l%2==0)

		{

            cout<<"First";

            return 0;

        }

        else

		{

            cout<<"Second";

            return 0;

        }

    }

    else{

        if(l%2==0)

		{

            cout<<"Second";

            return 0;

        }

        else

		{

            cout<<"First";

            return 0;

        }

    }

}

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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

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

using namespace std;

string a;

int b;

int main()

{

cin>>a;

b=a.size();

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

{

if(b%2==0)

{

cout<<"First"<<endl;

return 0;

}

else

{

cout<<"Second"<<endl;

return 0;

}

}

else

{

if(b%2==0){

cout<<"Second"<<endl;

return 0;

}

else

{

cout<<"First"<<endl;

return 0;

}

}

}

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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

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

using namespace std;

int main()

{

    string s;

    cin>>s;

    return 0&(int)printf("%s",((s[0]==s[s.length()-1])^(s.length()%2))?"First":"Second");

}

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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

}
// Slower C++ solution:
#include "cstdio"

#include "string"

#include "iostream"

using namespace std;

int main(){

	string s;

	cin>>s;

	int x=s.size();

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

	if(x%2==0){

		printf("First\n");return 0;

	}

	else{

		printf("Second\n");return 0;

	}

	}

	else{

		if(x%2==0){

		    printf("Second\n");return 0;

	    }

	    else {

		    printf("First\n");return 0;

	    }

	}

}

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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

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

#include <cstring>



using namespace std;



string s;



int main()

{

	cin >> s;

	if (s[0] == s[s.length() - 1] && s.length() % 2) cout << "Second" << endl;

	else if (s[0] == s[s.length() - 1] || s.length() % 2) cout << "First" << endl;

	else cout << "Second" << endl;

	return 0;

}

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

#include<cstring>

#include<stdio.h>

using namespace std;

int main(){

	int n;

	char a[100005];

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

	n=strlen(a+1);

	if((a[1]==a[n]&&n%2==1)||(a[1]!=a[n]&&n%2!=1))printf("Second\n");

	else printf("First\n");

	return 0;

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

using namespace std;

int main()

{

    string s;

    cin>>s;

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

    {

        if(s.length()%2==1) cout <<"Second\n";

        else cout <<"First\n";

    }

    else

    {

        if(s.length()%2==0) cout <<"Second\n";

        else cout <<"First\n";

    }

}

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

#include <cstring>

char s[100005];

int len;

int main(){

    scanf("%s", s), len = strlen(s);

    if (s[0] == s[len - 1]) puts(len & 1 ? "Second" : "First");

    else puts(len & 1 ? "First" : "Second");

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

#define LL long long

using namespace std;



const int N=1e5+10;

int len,Cnt;

char a[N];



int main ()

{

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

	len=strlen (a+1);

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

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

	if (Cnt==0) {

		puts ("Second");

		return 0;

	}	

	a[1]==a[len]? (len & 1?puts ("Second") : puts ("First") ) : (len & 1?puts ("First") : puts ("Second") );

	return 0;

}


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

#include <cstring>

char s[100005];

int len;

int main(){

    scanf("%s", s), len = strlen(s);

    if (s[0] == s[len - 1]) puts(len & 1 ? "Second" : "First");

    else puts(len & 1 ? "First" : "Second");

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

#include<cstring>

using namespace std;

string s;

int l;

int main()

{

	cin>>s;

	l=s.size();

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

	{

		if(l%2==0) cout<<"First";

		else cout<<"Second";

		return 0;

	}

	else

	{

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

		else cout<<"First";

		return 0;

	}

}

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

#include <cstring>

char s[100005];

int len;

int main(){

    scanf("%s", s), len = strlen(s);

    if (s[0] == s[len - 1]) puts(len & 1 ? "Second" : "First");

    else puts(len & 1 ? "First" : "Second");

}