import java.io.*;
import java.util.*;

public class Codeforces
{
    public static void main(String args[])throws Exception
    {
        BufferedReader bu=new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb=new StringBuilder();
        String s[]=bu.readLine().split(" ");
        int n=Integer.parseInt(s[0]),x1=Integer.parseInt(s[1]),x2=Integer.parseInt(s[2]);
        int i;
        Integer a[][]=new Integer[n][2];
        s=bu.readLine().split(" ");
        for(i=0;i<n;i++)
        {
            a[i][0]=Integer.parseInt(s[i]);
            a[i][1]=i+1;
        }
        Arrays.sort(a, new Comparator<Integer[]>() {
            @Override
            public int compare(Integer[] o1, Integer[] o2) {
                if(o1[0]>o2[0]) return 1;
                else if(o1[0]==o2[0]) return o1[1]>o2[1]?1:-1;
                else return -1;
            }});

        int in[]={-1,-1};
        for(i=1;i<n;i++)
        {
            int per=x1/i+(x1%i==0?0:1);
            int p=getindex(a,per);
            if(p==-1 || p+i>=n) continue;
            int p2=p+i;
            per=x2/(n-p2)+(x2%(n-p2)==0?0:1);
            if(a[p2][0]>=per)
            {
                in[0]=p; in[1]=p2;
                break;
            }

            per=x2/i+(x2%i==0?0:1);
            p=getindex(a,per);
            if(p==-1 || p+i>=n) continue;
            p2=p+i;
            per=x1/(n-p2)+(x1%(n-p2)==0?0:1);
            if(a[p2][0]>=per)
            {
                in[0]=p2; in[1]=p;
                break;
            }
        }

        if(in[0]==-1) sb.append("No\n");
        else
        {
            sb.append("Yes\n");
            ArrayList<Integer> f=new ArrayList<>(),se=new ArrayList<>();
            int last=in[1];
            if(in[1]<in[0]) last=n;
            for(i=in[0];i<last;i++) f.add(a[i][1]);

            last=in[0];
            if(in[0]<in[1]) last=n;
            for(i=in[1];i<last;i++) se.add(a[i][1]);

            sb.append(f.size()+" "+se.size()+"\n");
            for(int x:f) sb.append(x+" ");
            sb.append("\n");
            for(int x:se) sb.append(x+" ");
            sb.append("\n");
        }
        System.out.print(sb);
    }

    static int getindex(Integer a[][],int k)
    {
        int l=0,r=a.length-1,ans=0,mid;
        if(k>a[r-1][0]) return -1;
        while(l<=r)
        {
            mid=(l+r)>>1;
            if(a[mid][0]>=k)
            {
                ans=mid;
                r=mid-1;
            }
            else l=mid+1;
        }
        return ans;
    }
}
