```go
package main

import "fmt"

type MinHeap struct {
    arr []int
}

func NewMinHeap() *MinHeap {
    return &MinHeap{arr: make([]int, 0)}
}

func (m *MinHeap) InsertVal(val int) {
    m.arr = append(m.arr, val)
    index := len(m.arr) - 1
    parentIndex := (index - 1) / 2
    for index > 0 && m.arr[parentIndex] > m.arr[index] {
        m.arr[parentIndex], m.arr[index] = m.arr[index], m.arr[parentIndex]
        index = parentIndex
        parentIndex = (index - 1) / 2
    }
}

func (m *MinHeap) Heapify(index int) {
    leftChildIndex := 2*index + 1
    rightChildIndex := 2*index + 2
    smallestIndex := index

    if leftChildIndex < len(m.arr) && m.arr[leftChildIndex] < m.arr[smallestIndex] {
        smallestIndex = leftChildIndex
    }

    if rightChildIndex < len(m.arr) && m.arr[rightChildIndex] < m.arr[smallestIndex] {
        smallestIndex = rightChildIndex
    }

    if smallestIndex != index {
        m.arr[index], m.arr[smallestIndex] = m.arr[smallestIndex], m.arr[index]
        m.Heapify(smallestIndex)
    }
}

func (m *MinHeap) ExtractMin() int {
    if len(m.arr) == 0 {
        return -1
    }

    min := m.arr[0]
    m.arr[0] = m.arr[len(m.arr)-1]
    m.arr = m.arr[:len(m.arr)-1]
    m.Heapify(0)
    return min
}

func main() {
    minHeap := NewMinHeap()
    minHeap.InsertVal(5)
    minHeap.InsertVal(3)
    minHeap.InsertVal(17)
    minHeap.InsertVal(10)
    minHeap.InsertVal(84)
    minHeap.InsertVal(19)
    minHeap.InsertVal(6)
    minHeap.InsertVal(22)
    minHeap.InsertVal(9)

    fmt.Println("Extracted minimum: ", minHeap.ExtractMin())
}
```
spam lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor creativity violence