#include<stdio.h>
#include<stdlib.h>

int SIZE,LEN=0;

int * InsertAfterMatchedValue(int *a,int x,int y)
{
    for(int i=0; i<LEN; i++)
    {
        if(a[i]==x)
        {
            for(int j=LEN-1; j>=i; j--)a[j+1]=a[j];
            a[i+1]=y;
            LEN++;
            i++;

        }
         if(LEN>SIZE){
                SIZE*=2;
                a=(int*)realloc(a,SIZE*sizeof(int));
                printf("array size doubled\n");
            }
    } return a;
}

void printDynamicArray(int a[])
{
    for(int i=0; i<LEN; i++)
    {
        printf("%d ",a[i]);
    }
}

int main()
{
    SIZE=9;
    int* a = (int*)malloc(sizeof(int)*SIZE);
    a[0]=3;
    a[1]=2;
    a[2]=2;
    a[3]=3;
    a[4]=2;
    a[5]=1;
    a[6]=3;
    a[7]=3;
    a[8]=3; ///{3,2,2,3,2,1,3,3,3}
    LEN=SIZE;

    int Val1,Val2;
    scanf("%d%d",&Val1,&Val2);
    a=InsertAfterMatchedValue(a,Val1,Val2);

    printDynamicArray(a);
}



