#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
//map<string,ll> mp ;
//map<string,ll> :: iterator itr;
int main( )
{
string s,str; ll k,b,m,ans= 0 ,p,base;
cin >> s;
cin >> k>> b>> m;
str= s.substr ( 0 ,k) ;
base= stoll( str,nullptr,b) ;
base= base% m;
ans+ = base;
//mp[str]=base;
for ( ll i= k; i< s.length ( ) ; i++ ) {
str.erase ( 0 ,1 ) ;
str+ = s[ i] ;
//itr=mp.find(str);
//if(itr==mp.end()){
base= stoll( str,nullptr,b) ;
base= base% m;
ans+ = base;
//mp[str]=base;
//}
//else{
//ans+=itr->second;
//}
}
cout << ans<< endl;
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgaW50IGxsOwovL21hcDxzdHJpbmcsbGw+IG1wIDsKLy9tYXA8c3RyaW5nLGxsPiA6OiBpdGVyYXRvciBpdHI7CgppbnQgbWFpbigpCnsKICAgIHN0cmluZyBzLHN0cjsgbGwgayxiLG0sYW5zPTAscCxiYXNlOwogICAgY2luPj5zOwogICAgY2luPj5rPj5iPj5tOwogICAgICAgIHN0cj1zLnN1YnN0cigwLGspOwogICAgICAgIGJhc2U9c3RvbGwoc3RyLG51bGxwdHIsYik7CiAgICAgICAgYmFzZT1iYXNlJW07CiAgICAgICAgYW5zKz1iYXNlOwogICAgICAgIC8vbXBbc3RyXT1iYXNlOwoKICAgIGZvcihsbCBpPWs7aTxzLmxlbmd0aCgpO2krKyl7CiAgICAgICAgc3RyLmVyYXNlKDAsMSk7CiAgICAgICAgc3RyKz1zW2ldOwoKICAgICAgICAvL2l0cj1tcC5maW5kKHN0cik7CiAgICAgICAgLy9pZihpdHI9PW1wLmVuZCgpKXsKICAgICAgICBiYXNlPXN0b2xsKHN0cixudWxscHRyLGIpOwogICAgICAgIGJhc2U9YmFzZSVtOwogICAgICAgIGFucys9YmFzZTsKICAgICAgICAvL21wW3N0cl09YmFzZTsKICAgICAgICAvL30KICAgICAgICAvL2Vsc2V7CiAgICAgICAgICAgIC8vYW5zKz1pdHItPnNlY29uZDsKICAgICAgICAvL30KICAgIH0KICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgIHJldHVybiAwOwp9Cg==