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

#include <cstdio>

#include <cstring>

#include <cstdlib>

#include <algorithm>

#include <set>

#include <map>

#define INF 0x3f3f3f3f

using namespace std;

char ka[734567];

struct node

{

    char a;

    struct node * next;

    struct node * rnext;

};

int main()

{

    scanf("%s", ka);

    struct node *head = (struct node*)malloc(sizeof(struct node));

    head->next = head->rnext = NULL;

    struct node *tail = (struct node*)malloc(sizeof(struct node));

    tail = head;

    for(int i=0; ka[i]; i++)

    {

        struct node *p = (struct node *)malloc(sizeof(struct node));

        p->a = ka[i];

        p->next = NULL;

        p->rnext = tail;

        tail->next = p;

        tail = p;

    }

    int num = 0;

    int f = 0;

    while(1)

    {

        if(head->next == tail)

        {

            f = 1;

            break;

        }

        else

        {

            struct node * p = head->next;

            while(p)

            {

                if(p==head->next)

                    p = p->next;

                if(p->next!=NULL)

                {

                    if(p->rnext->a!=p->next->a)

                    {

                        p->rnext->next = p->next;

                        p->next->rnext = p->rnext;

                        num++;

                        free(p);

                        break;

                    }

                    else

                        p = p->next;

                }

                else

                {

                    f = 1;

                    break;

                }

            }

            if(f)

                break;

        }

    }

    if(num%2)

        printf("First\n");

    else

        printf("Second\n");

    return 0;

}


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

#include <stdio.h>

#include <stdlib.h>

using namespace std;

struct node

{

    char data;

    struct node *next, *last;

};

char ch[100100];

int main()

{

    scanf("%s",ch);

   int len=strlen(ch);

   struct node *head,*tail;

   head=(struct node *)malloc(sizeof(struct node ));

   head->data='0';

   head->next=NULL;

   head->last=NULL;

   tail=head;

   struct node *p;

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

   {

       p=(struct node *)malloc(sizeof(struct node ));

       p->next=NULL;

       p->last=NULL;

       p->data=ch[i];

       tail->next=p;

       p->last=tail;

       tail=p;

   }

   p=head->next->next;

   int k=0;

   while(p->next&&p)

   {

       if(p==head)

       {

           p=p->next->next;

           if(p==tail)

           {

               break;

           }

       }

       if(p==head->next)

       {

           p=p->next;

           if(p==tail)

           {

               break;

           }

       }

       if(p->last->data!=p->next->data)

       {

           struct node *z=(struct node *)malloc(sizeof(struct node));

           z=p->next;

           struct node *zz=(struct node *)malloc(sizeof(struct node ));

           zz=p->last;

           zz->next=z;

           z->last=zz;

           p=zz->last;

           k++;

       }

       if(p==tail)

       {

           break;

       }

       p=p->next;

   }

   if(k%2==1)

   {

       printf("First\n");

   }

   else

   {

       printf("Second\n");

   }

    return 0;

}