def minimum_eating_speed(piles, h):
    if not piles:
        return 0
    if h < len(piles):
        return None
    left, right = 1, max(piles) + 1
    while left < right:
        mid = (left + right) // 2
        hours = sum((pile + mid - 1) // mid for pile in piles)
        if hours <= h:
            right = mid
        else:
            left = mid + 1
    return left
