#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,a[16],b[16],rec[3999][16];
bool ok;
bool check(int k){
// for (int i=1;i<=rec[k][0];i++)
// cout<<rec[k][i]<<' ';
// cout<<endl;
bool flag=true;
for (int i=1;i<=m;i++)
if (rec[k][i]!=b[i]){
flag=false;
break;
}
bool flag2=true;
for (int i=1;i<=m;i++)
if (rec[k][i]!=b[m-i+1]){
flag2=false;
break;
}
return flag||flag2;
}
void search(int k){
// cout<<k<<endl;
if (rec[k][0]<m) return;
for (int i=1;i<=rec[k][0]-1;i++){
for (int j=i+1;j<=rec[k][0];j++)
rec[k+1][++rec[k+1][0]]=rec[k][j];
rec[k+1][0]=max(i,rec[k][0]-i);
for (int j=1;j<=i;j++)
rec[k+1][i-j+1]+=rec[k][j];
if (rec[k+1][0]==m&&check(k+1)) {
ok=true;return;
}
else if (k<n) search(k+1);
if (ok) return;
memset(rec[k+1],0,sizeof(rec[k+1]));
}
rec[k][0]=0;
}
int main(){
while(cin>>n){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(rec,0,sizeof(rec));
ok=false;
for (int i=1;i<=n;i++)
cin>>a[i];
cin>>m;
for (int i=1;i<=m;i++)
cin>>b[i];
rec[1][0]=n;
memcpy(rec[1]+1,a+1,sizeof(a));
if (n==m&&check(1)) ok=true;
search(1);
if (ok) cout<<"S\n";
else cout<<"N\n";
}
return 0;
}
求hack