n, x1, x2 = map(int, input().split())
c = list(map(int, input().split()))
c = [(ci, i) for i, ci in enumerate(c)]
c.sort(reverse=True)


def check(x1,x2,reverse=False):
  sum1 = sum2 = 0
  i = i1 = i2 = 0

  while i < len(c):
    sum1 += c[i][0]
    i += 1
    if sum1 >= x1 and 1.0*x1/i <= c[i-1][0]: break
  i1 = i
  
  if i1 == n: return False
  
  while i < len(c):
    sum2 += c[i][0]
    i += 1
    if sum2 >= x2 and 1.0*x2/(i-i1) <= c[i-1][0]:
      print('Yes')
      if reverse:
        print(i-i1, i1)
        print(' '.join(map(str, [ci[1]+1 for ci in c[i1:i]])))
        print(' '.join(map(str, [ci[1]+1 for ci in c[:i1]])))
      else:
        print(i1, i-i1)
        print(' '.join(map(str, [ci[1]+1 for ci in c[:i1]])))
        print(' '.join(map(str, [ci[1]+1 for ci in c[i1:i]])))
      return True

  return False

if not (check(x1, x2) or check(x2, x1,reverse=True)):
  print('No')
