#include <bits/stdc++.h>
using namespace std;
const int N=1e6+5;
const int INF=0x3f3f3f3f;
int n,x,y;
char s[N];
int pre[N][2];
bool check(int m){
for(int i=1;i+m-1<=n;i++){
int xx=pre[n][0]-pre[i+m-1][0]+pre[i-1][0];
int yy=pre[n][1]-pre[i+m-1][1]+pre[i-1][1];
int tx=x-xx;
int ty=y-yy;
if(abs(tx)+abs(ty)<=m &&(m-abs(tx)-abs(ty))%2==0){
return true;
}
}
return false;
}
int main(void){
scanf("%d",&n);
scanf("%s",s+1);
scanf("%d%d",&x,&y);
pre[0][0]=0;
pre[0][1]=0;
for(int i=1;i<=n;i++){
pre[i][0]=pre[i-1][0];
pre[i][1]=pre[i-1][1];
if(s[i]=='U'){
pre[i][1]++;
}
else if(s[i]=='D'){
pre[i][1]--;
}
else if(s[i]=='L'){
pre[i][0]--;
}
else{
pre[i][0]++;
}
}
int l=0,r=n;
int m;
int ans=INF;
while(l<=r){
m=(l+r)>>1;
if(check(m)){
r=m-1;
ans=m;
}
else{
l=m+1;
}
}
if(ans==INF){
printf("-1\n");
return 0;
}
printf("%d\n",ans);
return 0;
}