input: Write a python function to extract the text of the first heading, all list items, and the first paragraph from an HTML document using BeautifulSoup.
  assert extract_text(html_doc) == {'heading': 'Heading', 'items': ['Item 1', 'Item 2'], 'paragraph': 'This is a paragraph.'}
  assert extract_text("<html><body><h1>Test</h1><ul><li>List item</li></ul><p>Paragraph text</p></body></html>") == {'heading': 'Test', 'items': ['List item'], 'paragraph': 'Paragraph text'}
  assert extract_text("<html><body><h1>No List</h1><p>Only paragraph</p></body></html>") == {'heading': 'No List', 'items': [], 'paragraph': 'Only paragraph'}
output: def extract_text(html_doc):
      from bs4 import BeautifulSoup
      
      soup = BeautifulSoup(html_doc, 'html.parser')
      
      heading = soup.find('h1').get_text() if soup.find('h1') else ''
      items = [li.get_text() for li in soup.find_all('li')]
      paragraph = soup.find('p').get_text() if soup.find('p') else ''
      
      return {'heading': heading, 'items': items, 'paragraph': paragraph}