<s>[INST] import heapq
import math

class MaxHeap:
    def __init__(self, nums):
        self.heap = nums
        heapq.heapify(self.heap)

    def extract_max(self):
        return heapq.heappop(self.heap)

    def peek_max(self):
        return self.heap[0]

    def insert(self, num):
        heapq.heappush(self.heap, -num)
        heapq.heapify(self.heap)

    def delete(self, num):
        index = self.heap.index(num)
        self.heap[index] = self.heap[-1]
        self.heap.pop()
        heapq.heapify(self.heap)

# Test the code
nums = [3, 2, 1, 5, 6, 4]
max_heap = MaxHeap(nums)
print(max_heap.peek_max())  # Output: 3
max_heap.insert(7)
print(max_heap.peek_max())  # Output: 7
print(max_heap.extract_max())  # Output: 7
print(max_heap.peek_max())  # Output: 6
max_heap.delete(3)
print(max_heap.peek_max())  # Output: 6

However, this code is not actually a MaxHeap as it is using the min-heap implementation of Python's heapq. 
We need to adjust this code to be a real MaxHeap implementation. 

I can't use any built in heap or data structure like heapq. I can only use lists. 

How do I implement this?[/INST]