#include<stdio.h>
int last;
typedef struct node{
    int a;
    int b;
    int pre;
    int zong;
}node;
int A;
int B;
int C;
int vist[99][99];
node dui[100];
void bfs()
{
    int tou=0;
    int wei=1;
    dui[tou].a=0;
    dui[tou].b=0;
    dui[tou].pre=-1;
    while(tou<wei)
    {
        if(dui[tou].b==C)
        {
            last=tou;
            break;
        }
        for(int i=0;i<6;i++)
        {
            
            int na=dui[tou].a;
            int nb=dui[tou].b;
            if(i==0)
            {
                if(vist[A][dui[tou].b]==0)
                {
                    vist[A][dui[tou].b]=1;
                    dui[wei].a=A;
                    dui[wei].b=dui[tou].b;
                    dui[wei].pre=tou;
                    dui[wei++].zong=i;
                }
            }
            else if(i==1)
            {
                if(vist[0][dui[tou].b]==0)
                {
                    vist[0][dui[tou].b]=1;
                    dui[wei].a=0;
                    dui[wei].b=dui[tou].b;
                    dui[wei].pre=tou;
                    dui[wei++].zong=i;
                }
            }
            else if(i==2)
            {
                if(vist[dui[tou].a][0]==0)
                {
                    vist[dui[tou].a][0]=1;
                    dui[wei].a=dui[tou].a;
                    dui[wei].b=0;
                    dui[wei].pre=tou;
                    dui[wei++].zong=i;
                }
            }
            else if(i==3)
            {
                if(vist[dui[tou].a][B]==0)
                {
                    vist[dui[tou].a][B]=1;
                    dui[wei].a=dui[tou].a;
                    dui[wei].b=B;
                    dui[wei].pre=tou;
                    dui[wei++].zong=i;
                }
            }
            
            else if(i==4)
            {
                if(na+nb>=B)
                {
                    if(vist[na+nb-B][B]==0)
                    {
                        vist[na+nb-B][B]=1;
                        dui[wei].a=na+nb-B;
                        dui[wei].b=B;
                        dui[wei].pre=tou;
                        dui[wei++].zong=i;
                    }
                }
                else
                {
                    if(vist[0][na+nb]==0)
                    {
                        vist[0][na+nb]=1;
                        dui[wei].a=0;
                        dui[wei].b=na+nb;
                        dui[wei].pre=tou;
                        dui[wei++].zong=i;
                    }
                }
            }
            else if(i==5)
            {
                if(na+nb>=A)
                {
                    if(vist[A][na+nb-A]==0)
                    {
                        vist[A][na+nb-A]=1;
                        dui[wei].a=A;
                        dui[wei].b=na+nb-A;
                        dui[wei].pre=tou;
                        dui[wei++].zong=i;
                    }
                }
                else
                {
                    if(vist[na+nb][0]==0)
                    {
                        vist[na+nb][0]=1;
                        dui[wei].a=na+nb;
                        dui[wei].b=0;
                        dui[wei].pre=tou;
                        dui[wei++].zong=i;
                    }
                }
            }
        }
        tou++;
    }
}
void dayin(int a)
{
    if(a==0)
        return ;
    dayin(dui[a].pre);
    int i=dui[a].zong;
    if(i==0)
        printf("fill A \n");
    else if(i==1)
        printf("empty A\n");
    else if(i==2)
        printf("empty B\n");
    else if(i==3)
        printf("fill B\n");
    else if(i==4)
        printf("pour A B\n");
    else if(i==5)
        printf("pour B A\n");
}
int main()
{
    //freopen ("in.txt","r",stdin);
    while(scanf("%d %d %d",&A,&B,&C)!=EOF)
    {
        for(int i=0;i<99;i++)
        {
            for(int j=0;j<99;j++)
            {
                vist[i][j]=0;
            }
        }
        bfs();
        dayin(last);
        printf("success\n");
    }
    return 0;
}