#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef pair P; //-------------- ///#define DEBUG //-------------- #ifdef DEBUG #define debugprint(x) cout<x+add.x; add.y=this->y+add.y; return add; } zahyo operator-(zahyo add){ add.x=this->x-add.x; add.y=this->y-add.y; return add; } zahyo operator*(int t){ zahyo temp; temp.x=this->x*t; temp.y=this->y*t; return temp; } zahyo operator%(int t){ zahyo temp(this->x%t,this->y%t); return temp; } zahyo operator/(int t){ zahyo temp(this->x/t,this->y/t); return temp; } bool operator==(const zahyo add) const{ if(add.x==this->x and add.y==this->y){return true;} else{return false;} } bool operator!=(const zahyo add) const{ if(add.x==this->x or add.y==this->y){return false;} else{return true;} } bool operator<(const zahyo add) const{ if(this->xx==add.x and this->y(const zahyo add) const{ if(this->x>add.x){return true;} else if(this->x==add.x and this->y>add.y){return true;} else{return false;} } void input(){ cin>>x>>y; } }; long long int beki(long long int a,long long int n){ long long int x = 1LL; n%=998244352LL; while(n > 0){ if(n&1LL){ x = x*a; } x%=998244353LL; a = a*a; a%=998244353LL; n >>= 1; } return x; } int main(){ long long int a,b; cin>>a>>b; long long int c=a/b; if(a%b!=0){c++;} long long int ans=beki(2LL,c); ans%=998244353LL; cout<