You have written N problems to hold programming contests. The i-th problem will have a score of P_i points if used in a contest.  With these problems, you would like to hold as many contests as possible under the following condition:    * A contest has three problems. The first problem has a score not greater than A points, the second has a score between A + 1 and B points (inclusive), and the third has a score not less than B + 1 points.  The same problem should not be used in multiple contests. At most how many contests can be held?
# -*- coding: utf-8 -*-


def solve():
    N = int(input())
    A,B  = map(int,input().split())
    P = list(map(int,input().split()))
    P1 = list(p for p in P if p<=A)
    P2 = list(p for p in P if A<p<=B)
    P3 = list(p for p in P if B<p)
    res = min(P1,P2,P3)
    return str(res)

if __name__ == '__main__':
    print(solve())
# -*- coding: utf-8 -*-


def solve():
    N = int(input())
    A,B  = map(int,input().split())
    P = list(map(int,input().split()))
    P1 = list(p for p in P if p<=A)
    P2 = list(p for p in P if A<p<=B)
    P3 = list(p for p in P if B<p)
    res = min(len(P1),len(P2),len(P3))
    return str(res)

if __name__ == '__main__':
    print(solve())