distance_matrix.append(row)

    for i in range(len(distance_matrix[0])):
        for j in range(len(distance_matrix[0])):
            city_map.add_edge(city_map.get_vertex(i), city_map.get_vertex(j),
                              distance_matrix[i][j])

with open('WGUPS Package File.csv', 'r', encoding='utf-8-sig') as csv_file:
    csv_reader = csv.DictReader(csv_file)

    for row in csv_reader:
        package = Package(row['Package ID'], row['Address'], row['City'],
                          row['State'], row['Zip'], row['Delivery Deadline'],
                          row['Weight'], row['Special Notes'])
        package_table.hash_insert(package.id, package)
        package.set_location_id(get_location_id(package))
        package.special_notes()
        package_list.append(package)

early_delivery = []
for package in package_list:
    if package.has_early_deadline and not package.is_late:
        early_delivery.append(package)
    if package.is_grouped and package not in early_delivery:
        early_delivery.append(package)

late_arrivals_early_deadline = []
late_arrivals = []
for package in package_list:
    if package.is_late and package.has_early_deadline:
        late_arrivals_early_deadline.append(package)