#include<stdio.h>
#include<algorithm>
using namespace std;

#define maxn 222222

int n,m,s,k1,k2,i,win[maxn],winner[maxn],f[maxn],t[maxn],p[maxn],ii,was[maxn],c1,c2,c[maxn],k,x,y,ans;

void addedge(int x,int y){t[++ii]=y;p[ii]=f[x];f[x]=ii;}

int dfs(int k){
	if(win[k])return (winner[k]=win[k]);
	if(was[k])return 0;
	was[k]=1;
	int q=f[k],w1=0,w2=0,w0=0;
	while(q){
		if(winner[t[q]]==-1){
			winner[t[q]]=dfs(t[q]);
			if(winner[t[q]]==1)++w1;else
			if(winner[t[q]]==2)++w2;else ++w0;
		}
		q=p[q];
	}
	c1=(c[k])/2;c2=c[k]-1-c1;
	if(w1&&c1>=w2+w0)return (winner[k]=1);
	if(w2&&c2>=w1+w0)return (winner[k]=2);
	return (winner[k]=0);
}

int main(){
	freopen("graphgame.in","r",stdin);
	freopen("graphgame.out","w",stdout);
	scanf("%d%d%d%d%d",&n,&m,&s,&k1,&k2);
	for(i=1;i<=k1+k2;i++){
		scanf("%d",&k);
		win[k]=1+(i>k1);
	}
	for(i=1;i<=m;i++){
		scanf("%d%d",&x,&y);
		addedge(x,y);
		++c[x];
	}
	for(i=1;i<=n;i++)winner[i]=-1;
	ans=dfs(s);
	if(!ans)puts("Draw");else
	if(ans==1)puts("Sasha wins");else if(ans==2)puts("Alexandra wins");
	return 0;
}