#include #include using namespace std; using ll = long long; using ld = long double; const ll INF = LLONG_MAX / 4; #define rep(i, a, b) for(int i = a; i < (b); i++) #define rrep(i, a, b) for(int i = (b)-1; i >= (a); i--) #define all(a) begin(a), end(a) bool chmin(auto& a, auto b) {return a > b ? a = b, 1 : 0; } bool chmax(auto& a, auto b) {return a < b ? a = b, 1 : 0; } int main() { cin.tie(0) -> sync_with_stdio(false); ll n,p; cin >> n >> p; ll ans = 0; unordered_set st; rep(i,1,10) { rep(j,0,10){ rep(k,0,10) { ll otogi = (10*i+i) * 10000 + (j * 1000 + j) + k * 100 + k * 10; ll nw = -otogi; while(-nw <= n) { if(st.count(nw) == 0) { ans = (ans + nw) % p; st.insert(nw); } nw -= otogi; } } } } cout << (ans+p)%p << endl; }