How to avoid TLE in this question

#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int a,b,c;
cin>>a>>b>>c;
long long int ans=1;
if(a>=c)
{
a=a%c;
}
for(;b;b>>1)
{

	if(b&1)
	{
	if(a>=c)
   	{
     	a=a%c;
    }
		ans=(ans*a)%c;
	}
	a=(a*a)%c;
	
}
cout<<(ans%c)<<endl;
return 0;

}