import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.Arrays; import java.util.NoSuchElementException; class Main { public static void main(String[] args) { new Main().run(); } final long mod=998244353; long f(char[] a, int id) { int n=a.length; if (id == n) { int sum=0; for (char c : a) { sum+=c-'0'; } if (sum%3==0) return 1; else return 0; } long ret=0; if (a[id]=='?') { a[id]='0'; ret+=4*f(a, id+1); ret%=mod; a[id]='1'; ret+=3*f(a, id+1); ret%=mod; a[id]='2'; ret+=3*f(a, id+1); ret%=mod; a[id]='?'; } else { ret=f(a, id+1); } return ret; } void brute(int N, char[] str) { long ans=0; for (int L=0;L Integer.MAX_VALUE) throw new NumberFormatException(); return (int) nl; } public double nextDouble() { return Double.parseDouble(next());} }