Buggy python submission (verdict: Time Limit Exceeded):
import sys
input=sys.stdin.readline
n=int(input())
s=input()
r=0
g=0
b=0
rg=0
gb=0
br=0
ans=1
for i in range(3*n):
    if s[i]=="R":
        if gb:
            ans*=gb
            gb-=1
        elif g:
            ans*=g
            g-=1
            rg+=1
        elif b:
            ans*=b
            b-=1
            br+=1
        else:
            r+=1

    if s[i]=="G":
        if br:
            ans*=br
            br-=1
        elif r:
            ans*=r
            r-=1
            rg+=1
        elif b:
            ans*=b
            b-=1
            gb+=1
        else:
            g+=1
    if s[i]=="B":
        if rg:
            ans*=rg
            rg-=1
        elif g:
            ans*=g
            g-=1
            gb+=1
        elif r:
            ans*=r
            r-=1
            br+=1
        else:
            b+=1

import math

print(ans*math.factorial(n))


Fixed submission:
import sys,math
input=sys.stdin.readline
n=int(input())
s=input()
mod=998244353
r=0
g=0
b=0
rg=0
gb=0
br=0
ans=1
for i in range(3*n):
    if s[i]=="R":
        if gb:
            ans*=gb
            gb-=1
        elif g:
            ans*=g
            g-=1
            rg+=1
        elif b:
            ans*=b
            b-=1
            br+=1
        else:
            r+=1

    if s[i]=="G":
        if br:
            ans*=br
            br-=1
        elif r:
            ans*=r
            r-=1
            rg+=1
        elif b:
            ans*=b
            b-=1
            gb+=1
        else:
            g+=1
    if s[i]=="B":
        if rg:
            ans*=rg
            rg-=1
        elif g:
            ans*=g
            g-=1
            gb+=1
        elif r:
            ans*=r
            r-=1
            br+=1
        else:
            b+=1
    ans%=mod

k=math.factorial(n)
print(ans*k%mod)

Buggy python submission (verdict: Time Limit Exceeded):
import sys
input=sys.stdin.readline
n=int(input())
s=input()
r=0
g=0
b=0
rg=0
gb=0
br=0
ans=1
for i in range(3*n):
    if s[i]=="R":
        if gb:
            ans*=gb
            gb-=1
        elif g:
            ans*=g
            g-=1
            rg+=1
        elif b:
            ans*=b
            b-=1
            br+=1
        else:
            r+=1

    if s[i]=="G":
        if br:
            ans*=br
            br-=1
        elif r:
            ans*=r
            r-=1
            rg+=1
        elif b:
            ans*=b
            b-=1
            gb+=1
        else:
            g+=1
    if s[i]=="B":
        if rg:
            ans*=rg
            rg-=1
        elif g:
            ans*=g
            g-=1
            gb+=1
        elif r:
            ans*=r
            r-=1
            br+=1
        else:
            b+=1

import math

print(ans*math.factorial(n))


Fixed submission:
import sys,math
input=sys.stdin.readline
n=int(input())
s=input()
mod=998244353
r=0
g=0
b=0
rg=0
gb=0
br=0
ans=1
for i in range(3*n):
    if s[i]=="R":
        if gb:
            ans*=gb
            gb-=1
        elif g:
            ans*=g
            g-=1
            rg+=1
        elif b:
            ans*=b
            b-=1
            br+=1
        else:
            r+=1

    if s[i]=="G":
        if br:
            ans*=br
            br-=1
        elif r:
            ans*=r
            r-=1
            rg+=1
        elif b:
            ans*=b
            b-=1
            gb+=1
        else:
            g+=1
    if s[i]=="B":
        if rg:
            ans*=rg
            rg-=1
        elif g:
            ans*=g
            g-=1
            gb+=1
        elif r:
            ans*=r
            r-=1
            br+=1
        else:
            b+=1
    ans%=mod

k=math.factorial(n)
print(ans*k%mod)