Race Track question runtime error

You are given the initial health and tracks for 2 contestants - A and B The tracks are denoted as strings of characters ‘_’,’+’,’-’,’*’. The ending of the track is denoted using ‘|’. The contestants loose or gain health each step as follows:

'_' = -1

'*' = -2

'-' = -1

'+' = +1 

If someone’s health drops to zero or less s/he cannot run anymore. The one who stays longest on the track wins (The one who completes larger number of steps). If its a tie, A wins. You have to print the name of winner (A or B) Note: Assume health to be int. Also keep in mind that you do not know the length of the track beforehand. Input: A’s health (integer) A’s track (string) B’s health (integer) B’s track (string) Example: Input: 10 —*±—| 9 -±*±—| Output: B

I wrote this program but it is showing time limit exceeded.
#include<stdio.h>

int main()
{
int ha,i=0,j=0,hb;

scanf("%d",&ha);

while(ha>0)

{

   char c;

   scanf("%c",&c);

   if(c=='-'||c=='_')

   {

       ha=ha-1;

   }

   else if(c=='*')

   {

       ha=ha-2;

   }

   else if(c=='+')

   {

       ha=ha+1;

   }

   i++;

}

scanf("%d",&hb);

while(hb>0)

{

  char c;

   scanf("%c",&c);

   if(c=='-'||c=='_')

   {

       hb=hb-1;

   }

   else if(c=='*')

   {

       hb=hb-2;

   }

   else if(c=='+')

   {

       hb=hb+1;

   }

   j++;

}

if (i>=j)

{

   printf("A");

}

else{

    printf("B");

    }

return 0;

}