def calcs(x,y,ax,ay,bx,by) ((ax-x)*(by-y)-(bx-x)*(ay-y))/2.0 end

def inpf() a=gets.chomp.split(" ").map(&:to_f)end

def inps() a=gets.chomp.split(" ")end

def copy(a) Marshal.load(Marshal.dump(a)) end

def factorial(n)(n < 2)? 1 : (2..n).inject(:*) end

def scount(a) b=na(a.max+1);a.each{|n|b[n]+=1};return b end

def na(n,d=0) Array.new(n,d)end

def na2(n,m,d=0) Array.new(n){Array.new(m,d)}end

def na3(n,m,l,d=0) Array.new(n){Array.new(ym){Array.new(l,d)}}end

def yn(f) return (f)? "Yes": "No" end

def ynb(f) return (f)? "YES": "NO" end

def ap(a) a.each{|u| p u} end

def bit(n) n.to_s(2).split("").map(&:to_i) end

def inp() a=gets.chomp.split(" ").map(&:to_i)end

n = inp[0]
s = gets.chomp
ans = 1
a = na(3,n)
o = na(3,n)
z = na(3,n)
r = 998244353
h = {"R" => 0,"B" => 1,"G" => 2}
n.times do |i|
  c = s[i]
  ans *= a[h[c]]
  ans %= r
  a[h[c]] -= 1
end
n.times do |i|
  c = s[i+n]
  ans *= o[h[c]]
  ans %= r
  o[h[c]] -= 1
end
n.times do |i|
  c = s[i+n+n]
  ans *= z[h[c]]
  ans %= r
  z[h[c]] -= 1
end
p ans