- #include <iostream> 
- #include <cmath> 
- using namespace std; 
-   
- int getAllWays(int b, int li, int rem) 
- { 
-     if (rem==0) 
-     { 
-         return 1; 
-     } 
-     if (li<=0) 
-     { 
-         return 0; 
-     } 
-     int remrt = pow(rem,(1.0/b)); 
-     while(remrt>=li) 
-     { 
-         remrt--; 
-     } 
-     // Select case 
-     int v1 = getAllWays(b, remrt, rem-pow(remrt,b)); 
-     // Reject case 
-     int v2 = getAllWays(b, remrt, rem); 
-     return v1+v2; 
- } 
-   
- int getAllWays(int a, int b) 
- { 
- 	// Write your code here 
-     int li = pow(a,(1.0/b)); 
-     li++; 
-     return getAllWays(b, li, a); 
- } 
-   
- int main() 
- { 
-     int a, b; 
-     cin >> a >> b; 
-     cout <<getAllWays(a, b); 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZ2V0QWxsV2F5cyhpbnQgYiwgaW50IGxpLCBpbnQgcmVtKQp7CiAgICBpZiAocmVtPT0wKQogICAgewogICAgICAgIHJldHVybiAxOwogICAgfQogICAgaWYgKGxpPD0wKQogICAgewogICAgICAgIHJldHVybiAwOwogICAgfQogICAgaW50IHJlbXJ0ID0gcG93KHJlbSwoMS4wL2IpKTsKICAgIHdoaWxlKHJlbXJ0Pj1saSkKICAgIHsKICAgICAgICByZW1ydC0tOwogICAgfQogICAgLy8gU2VsZWN0IGNhc2UKICAgIGludCB2MSA9IGdldEFsbFdheXMoYiwgcmVtcnQsIHJlbS1wb3cocmVtcnQsYikpOwogICAgLy8gUmVqZWN0IGNhc2UKICAgIGludCB2MiA9IGdldEFsbFdheXMoYiwgcmVtcnQsIHJlbSk7CiAgICByZXR1cm4gdjErdjI7Cn0KCmludCBnZXRBbGxXYXlzKGludCBhLCBpbnQgYikKewoJLy8gV3JpdGUgeW91ciBjb2RlIGhlcmUKICAgIGludCBsaSA9IHBvdyhhLCgxLjAvYikpOwogICAgbGkrKzsKICAgIHJldHVybiBnZXRBbGxXYXlzKGIsIGxpLCBhKTsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgYSwgYjsKICAgIGNpbiA+PiBhID4+IGI7CiAgICBjb3V0IDw8Z2V0QWxsV2F5cyhhLCBiKTsKfQ==