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

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