program around;
var
  n,m,k,x,ans,s:longint;

function work(k:longint):longint;
begin
  if k=1 then exit(10);
  if odd(k) then exit((sqr(work(k div 2)))mod n*10mod n)
    else exit(sqr(work(k div 2))mod n);
end;

begin
  readln(n,m,k,x);
  s:=work(k);
  ans:=((s*m)mod n+x)mod n;
  writeln(ans);
end.

/**************************************************************
	Problem: 2324
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/