#include <bits/stdc++.h>
using namespace std;

const int M=3005;
const int MO=998244353;

void addv(int &x,int y)
{
	x+=y; if(x>=MO) x-=MO;
}

int dp[M];

// dp[i][j]
// to i-th ele select in set select / no select
// no select in set

int main()
{
	int n,s; scanf("%d%d",&n,&s);
	dp[0]=1;
	int ai;
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&ai);
		for(int j=s;j>=0;j--)
		{
			addv(dp[j],dp[j]);
			if(j>=ai) addv(dp[j],dp[j-ai]);
			//cout<<dp[j]<<" ";
		}
		//cout<<endl;
	}
	printf("%d\n",dp[s]);
	return 0;
}