; LLVM IR from abeaumont/competitive-programming :: cses (1160)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@_ZSt3cin = external global %"class.std::basic_istream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"class.std::vector", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::vector", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::vector", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::vector", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::vector", align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::vector.0", align 8
  %22 = alloca %"class.std::vector", align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::function", align 8
  %25 = alloca %class.anon, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %33 = alloca i32, align 4
  %34 = alloca %"class.std::vector.0", align 8
  %35 = alloca %"class.std::vector", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %"class.std::vector", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  %55 = call noundef zeroext i1 @_ZNSt8ios_base15sync_with_stdioEb(i1 noundef zeroext false)
  %56 = load ptr, ptr @_ZSt3cin, align 8, !tbaa !5
  %57 = getelementptr i8, ptr %56, i64 -24
  %58 = load i64, ptr %57, align 8
  %59 = getelementptr inbounds i8, ptr @_ZSt3cin, i64 %58
  %60 = call noundef ptr @_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo(ptr noundef nonnull align 8 dereferenceable(264) %59, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #7
  %61 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %2)
  %62 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull align 4 dereferenceable(4) %3)
  call void @llvm.lifetime.start.p0(i64 24, ptr %6) #7
  %63 = load i32, ptr %2, align 4, !tbaa !8
  %64 = sext i32 %63 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %64, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %65 unwind label %83

65:                                               ; preds = %0
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #7
  %66 = load i32, ptr %2, align 4, !tbaa !8
  %67 = sext i32 %66 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %67, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %68 unwind label %87

68:                                               ; preds = %65
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #7
  %69 = load i32, ptr %2, align 4, !tbaa !8
  %70 = sext i32 %69 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %70, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %71 unwind label %91

71:                                               ; preds = %68
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #7
  %72 = load i32, ptr %2, align 4, !tbaa !8
  %73 = sext i32 %72 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %73, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %74 unwind label %95

74:                                               ; preds = %71
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #7
  %75 = load i32, ptr %2, align 4, !tbaa !8
  %76 = sext i32 %75 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  store i32 -2, ptr %17, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %76, ptr noundef nonnull align 4 dereferenceable(4) %17, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %77 unwind label %99

77:                                               ; preds = %74
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 0, ptr %19, align 4, !tbaa !8
  br label %78

78:                                               ; preds = %114, %77
  %79 = load i32, ptr %19, align 4, !tbaa !8
  %80 = load i32, ptr %2, align 4, !tbaa !8
  %81 = icmp slt i32 %79, %80
  br i1 %81, label %103, label %82

82:                                               ; preds = %78
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %121

83:                                               ; preds = %0
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %8, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  br label %667

87:                                               ; preds = %65
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %8, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  br label %666

91:                                               ; preds = %68
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %8, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  br label %665

95:                                               ; preds = %71
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %8, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  br label %664

99:                                               ; preds = %74
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  store ptr %101, ptr %8, align 8
  %102 = extractvalue { ptr, i32 } %100, 1
  store i32 %102, ptr %9, align 4
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %663

103:                                              ; preds = %78
  %104 = load i32, ptr %19, align 4, !tbaa !8
  %105 = sext i32 %104 to i64
  %106 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %105) #7
  %107 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %106)
          to label %108 unwind label %117

108:                                              ; preds = %103
  %109 = load i32, ptr %19, align 4, !tbaa !8
  %110 = sext i32 %109 to i64
  %111 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %110) #7
  %112 = load i32, ptr %111, align 4, !tbaa !8
  %113 = add nsw i32 %112, -1
  store i32 %113, ptr %111, align 4, !tbaa !8
  br label %114

114:                                              ; preds = %108
  %115 = load i32, ptr %19, align 4, !tbaa !8
  %116 = add nsw i32 %115, 1
  store i32 %116, ptr %19, align 4, !tbaa !8
  br label %78, !llvm.loop !11

117:                                              ; preds = %103
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %8, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %662

121:                                              ; preds = %82
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  store i32 0, ptr %20, align 4, !tbaa !8
  br label %122

122:                                              ; preds = %136, %121
  %123 = load i32, ptr %20, align 4, !tbaa !8
  %124 = load i32, ptr %2, align 4, !tbaa !8
  %125 = icmp slt i32 %123, %124
  br i1 %125, label %127, label %126

126:                                              ; preds = %122
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %139

127:                                              ; preds = %122
  %128 = load i32, ptr %20, align 4, !tbaa !8
  %129 = sext i32 %128 to i64
  %130 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %129) #7
  %131 = load i32, ptr %130, align 4, !tbaa !8
  %132 = sext i32 %131 to i64
  %133 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %132) #7
  %134 = load i32, ptr %133, align 4, !tbaa !8
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr %133, align 4, !tbaa !8
  br label %136

136:                                              ; preds = %127
  %137 = load i32, ptr %20, align 4, !tbaa !8
  %138 = add nsw i32 %137, 1
  store i32 %138, ptr %20, align 4, !tbaa !8
  br label %122, !llvm.loop !13

139:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #7
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  store i32 0, ptr %23, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr %25) #7
  %140 = getelementptr inbounds %class.anon, ptr %25, i32 0, i32 0
  store ptr %12, ptr %140, align 8, !tbaa !14
  %141 = getelementptr inbounds %class.anon, ptr %25, i32 0, i32 1
  store ptr %22, ptr %141, align 8, !tbaa !14
  %142 = getelementptr inbounds %class.anon, ptr %25, i32 0, i32 2
  store ptr %21, ptr %142, align 8, !tbaa !14
  %143 = getelementptr inbounds %class.anon, ptr %25, i32 0, i32 3
  store ptr %23, ptr %143, align 8, !tbaa !14
  %144 = getelementptr inbounds %class.anon, ptr %25, i32 0, i32 4
  store ptr %24, ptr %144, align 8, !tbaa !14
  %145 = getelementptr inbounds %class.anon, ptr %25, i32 0, i32 5
  store ptr %6, ptr %145, align 8, !tbaa !14
  %146 = getelementptr inbounds %class.anon, ptr %25, i32 0, i32 6
  store ptr %16, ptr %146, align 8, !tbaa !14
  %147 = getelementptr inbounds %class.anon, ptr %25, i32 0, i32 7
  store ptr %14, ptr %147, align 8, !tbaa !14
  invoke void @"_ZNSt8functionIFviiEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(64) %25)
          to label %148 unwind label %154

148:                                              ; preds = %139
  call void @llvm.lifetime.end.p0(i64 64, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  store i32 1, ptr %26, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  store i32 0, ptr %27, align 4, !tbaa !8
  br label %149

149:                                              ; preds = %186, %148
  %150 = load i32, ptr %27, align 4, !tbaa !8
  %151 = load i32, ptr %2, align 4, !tbaa !8
  %152 = icmp slt i32 %150, %151
  br i1 %152, label %158, label %153

153:                                              ; preds = %149
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %189

154:                                              ; preds = %139
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %8, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 64, ptr %25) #7
  br label %661

158:                                              ; preds = %149
  %159 = load i32, ptr %27, align 4, !tbaa !8
  %160 = sext i32 %159 to i64
  %161 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %160) #7
  %162 = load i32, ptr %161, align 4, !tbaa !8
  %163 = icmp ne i32 %162, 0
  br i1 %163, label %178, label %164

164:                                              ; preds = %158
  %165 = load i32, ptr %27, align 4, !tbaa !8
  %166 = sext i32 %165 to i64
  %167 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %166) #7
  %168 = load i32, ptr %167, align 4, !tbaa !8
  %169 = icmp ne i32 %168, 0
  br i1 %169, label %178, label %170

170:                                              ; preds = %164
  %171 = load i32, ptr %27, align 4, !tbaa !8
  %172 = load i32, ptr %26, align 4, !tbaa !8
  invoke void @_ZNKSt8functionIFviiEEclEii(ptr noundef nonnull align 8 dereferenceable(32) %24, i32 noundef %171, i32 noundef %172)
          to label %173 unwind label %174

173:                                              ; preds = %170
  br label %178

174:                                              ; preds = %170
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %8, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %660

178:                                              ; preds = %173, %164, %158
  %179 = load i32, ptr %23, align 4, !tbaa !8
  %180 = load i32, ptr %26, align 4, !tbaa !8
  %181 = icmp eq i32 %179, %180
  br i1 %181, label %182, label %185

182:                                              ; preds = %178
  %183 = load i32, ptr %26, align 4, !tbaa !8
  %184 = add nsw i32 %183, 1
  store i32 %184, ptr %26, align 4, !tbaa !8
  br label %185

185:                                              ; preds = %182, %178
  br label %186

186:                                              ; preds = %185
  %187 = load i32, ptr %27, align 4, !tbaa !8
  %188 = add nsw i32 %187, 1
  store i32 %188, ptr %27, align 4, !tbaa !8
  br label %149, !llvm.loop !16

189:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #7
  store i32 0, ptr %28, align 4, !tbaa !8
  br label %190

190:                                              ; preds = %217, %189
  %191 = load i32, ptr %28, align 4, !tbaa !8
  %192 = load i32, ptr %2, align 4, !tbaa !8
  %193 = icmp slt i32 %191, %192
  br i1 %193, label %195, label %194

194:                                              ; preds = %190
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %220

195:                                              ; preds = %190
  %196 = load i32, ptr %28, align 4, !tbaa !8
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %197) #7
  %199 = load i32, ptr %198, align 4, !tbaa !8
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %209, label %201

201:                                              ; preds = %195
  %202 = load i32, ptr %28, align 4, !tbaa !8
  %203 = load i32, ptr %26, align 4, !tbaa !8
  invoke void @_ZNKSt8functionIFviiEEclEii(ptr noundef nonnull align 8 dereferenceable(32) %24, i32 noundef %202, i32 noundef %203)
          to label %204 unwind label %205

204:                                              ; preds = %201
  br label %209

205:                                              ; preds = %201
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %8, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %660

209:                                              ; preds = %204, %195
  %210 = load i32, ptr %23, align 4, !tbaa !8
  %211 = load i32, ptr %26, align 4, !tbaa !8
  %212 = icmp eq i32 %210, %211
  br i1 %212, label %213, label %216

213:                                              ; preds = %209
  %214 = load i32, ptr %26, align 4, !tbaa !8
  %215 = add nsw i32 %214, 1
  store i32 %215, ptr %26, align 4, !tbaa !8
  br label %216

216:                                              ; preds = %213, %209
  br label %217

217:                                              ; preds = %216
  %218 = load i32, ptr %28, align 4, !tbaa !8
  %219 = add nsw i32 %218, 1
  store i32 %219, ptr %28, align 4, !tbaa !8
  br label %190, !llvm.loop !17

220:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  store i32 0, ptr %29, align 4, !tbaa !8
  br label %221

221:                                              ; preds = %271, %220
  %222 = load i32, ptr %29, align 4, !tbaa !8
  %223 = sext i32 %222 to i64
  %224 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  %225 = icmp ult i64 %223, %224
  br i1 %225, label %227, label %226

226:                                              ; preds = %221
  store i32 14, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %274

227:                                              ; preds = %221
  %228 = load i32, ptr %29, align 4, !tbaa !8
  %229 = sext i32 %228 to i64
  %230 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %229) #7
  %231 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %230) #7
  %232 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %31, i32 0, i32 0
  store ptr %231, ptr %232, align 8
  %233 = load i32, ptr %29, align 4, !tbaa !8
  %234 = sext i32 %233 to i64
  %235 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %234) #7
  %236 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %235) #7
  %237 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %32, i32 0, i32 0
  store ptr %236, ptr %237, align 8
  %238 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %31, i32 0, i32 0
  %239 = load ptr, ptr %238, align 8
  %240 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %32, i32 0, i32 0
  %241 = load ptr, ptr %240, align 8
  invoke void @_ZSt7reverseIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEvT_S7_(ptr %239, ptr %241)
          to label %242 unwind label %252

242:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  store i32 0, ptr %33, align 4, !tbaa !8
  br label %243

243:                                              ; preds = %267, %242
  %244 = load i32, ptr %33, align 4, !tbaa !8
  %245 = sext i32 %244 to i64
  %246 = load i32, ptr %29, align 4, !tbaa !8
  %247 = sext i32 %246 to i64
  %248 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %247) #7
  %249 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %248) #7
  %250 = icmp ult i64 %245, %249
  br i1 %250, label %256, label %251

251:                                              ; preds = %243
  store i32 17, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %270

252:                                              ; preds = %227
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %8, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %660

256:                                              ; preds = %243
  %257 = load i32, ptr %33, align 4, !tbaa !8
  %258 = load i32, ptr %29, align 4, !tbaa !8
  %259 = sext i32 %258 to i64
  %260 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %259) #7
  %261 = load i32, ptr %33, align 4, !tbaa !8
  %262 = sext i32 %261 to i64
  %263 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %260, i64 noundef %262) #7
  %264 = load i32, ptr %263, align 4, !tbaa !8
  %265 = sext i32 %264 to i64
  %266 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %265) #7
  store i32 %257, ptr %266, align 4, !tbaa !8
  br label %267

267:                                              ; preds = %256
  %268 = load i32, ptr %33, align 4, !tbaa !8
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr %33, align 4, !tbaa !8
  br label %243, !llvm.loop !18

270:                                              ; preds = %251
  br label %271

271:                                              ; preds = %270
  %272 = load i32, ptr %29, align 4, !tbaa !8
  %273 = add nsw i32 %272, 1
  store i32 %273, ptr %29, align 4, !tbaa !8
  br label %221, !llvm.loop !19

274:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #7
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #7
  %275 = load i32, ptr %2, align 4, !tbaa !8
  %276 = add nsw i32 %275, 1
  %277 = sext i32 %276 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %277, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %278 unwind label %285

278:                                              ; preds = %274
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %35)
          to label %279 unwind label %289

279:                                              ; preds = %278
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  store i32 1, ptr %37, align 4, !tbaa !8
  br label %280

280:                                              ; preds = %308, %279
  %281 = load i32, ptr %37, align 4, !tbaa !8
  %282 = load i32, ptr %2, align 4, !tbaa !8
  %283 = icmp sle i32 %281, %282
  br i1 %283, label %294, label %284

284:                                              ; preds = %280
  store i32 20, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %315

285:                                              ; preds = %274
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %8, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %9, align 4
  br label %293

289:                                              ; preds = %278
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %8, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %9, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #7
  br label %293

293:                                              ; preds = %289, %285
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #7
  br label %659

294:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  store i32 0, ptr %38, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %295 = load i32, ptr %37, align 4, !tbaa !8
  %296 = sub nsw i32 %295, 1
  %297 = sext i32 %296 to i64
  %298 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %297) #7
  %299 = load i32, ptr %298, align 4, !tbaa !8
  %300 = add nsw i32 %299, 1
  store i32 %300, ptr %39, align 4, !tbaa !8
  %301 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %302 unwind label %311

302:                                              ; preds = %294
  %303 = load i32, ptr %301, align 4, !tbaa !8
  %304 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef 0) #7
  %305 = load i32, ptr %37, align 4, !tbaa !8
  %306 = sext i32 %305 to i64
  %307 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %304, i64 noundef %306) #7
  store i32 %303, ptr %307, align 4, !tbaa !8
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %308

308:                                              ; preds = %302
  %309 = load i32, ptr %37, align 4, !tbaa !8
  %310 = add nsw i32 %309, 1
  store i32 %310, ptr %37, align 4, !tbaa !8
  br label %280, !llvm.loop !20

311:                                              ; preds = %294
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %8, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %659

315:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  store i32 1, ptr %40, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  store i32 1, ptr %41, align 4, !tbaa !8
  br label %316

316:                                              ; preds = %367, %315
  %317 = load i32, ptr %40, align 4, !tbaa !8
  %318 = load i32, ptr %2, align 4, !tbaa !8
  %319 = icmp slt i32 %317, %318
  br i1 %319, label %321, label %320

320:                                              ; preds = %316
  store i32 23, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %372

321:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #7
  %322 = load i32, ptr %2, align 4, !tbaa !8
  %323 = add nsw i32 %322, 1
  %324 = sext i32 %323 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %324, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %325 unwind label %332

325:                                              ; preds = %321
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %326 unwind label %336

326:                                              ; preds = %325
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  store i32 1, ptr %44, align 4, !tbaa !8
  br label %327

327:                                              ; preds = %363, %326
  %328 = load i32, ptr %44, align 4, !tbaa !8
  %329 = load i32, ptr %2, align 4, !tbaa !8
  %330 = icmp sle i32 %328, %329
  br i1 %330, label %341, label %331

331:                                              ; preds = %327
  store i32 26, ptr %30, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %366

332:                                              ; preds = %321
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %8, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %9, align 4
  br label %340

336:                                              ; preds = %325
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %8, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %9, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #7
  br label %340

340:                                              ; preds = %336, %332
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %659

341:                                              ; preds = %327
  %342 = load i32, ptr %41, align 4, !tbaa !8
  %343 = sub nsw i32 %342, 1
  %344 = sext i32 %343 to i64
  %345 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %344) #7
  %346 = load i32, ptr %41, align 4, !tbaa !8
  %347 = sub nsw i32 %346, 1
  %348 = sext i32 %347 to i64
  %349 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %348) #7
  %350 = load i32, ptr %44, align 4, !tbaa !8
  %351 = sext i32 %350 to i64
  %352 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %349, i64 noundef %351) #7
  %353 = load i32, ptr %352, align 4, !tbaa !8
  %354 = sext i32 %353 to i64
  %355 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %345, i64 noundef %354) #7
  %356 = load i32, ptr %355, align 4, !tbaa !8
  %357 = load i32, ptr %41, align 4, !tbaa !8
  %358 = sext i32 %357 to i64
  %359 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %358) #7
  %360 = load i32, ptr %44, align 4, !tbaa !8
  %361 = sext i32 %360 to i64
  %362 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %359, i64 noundef %361) #7
  store i32 %356, ptr %362, align 4, !tbaa !8
  br label %363

363:                                              ; preds = %341
  %364 = load i32, ptr %44, align 4, !tbaa !8
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr %44, align 4, !tbaa !8
  br label %327, !llvm.loop !21

366:                                              ; preds = %331
  br label %367

367:                                              ; preds = %366
  %368 = load i32, ptr %40, align 4, !tbaa !8
  %369 = mul nsw i32 %368, 2
  store i32 %369, ptr %40, align 4, !tbaa !8
  %370 = load i32, ptr %41, align 4, !tbaa !8
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr %41, align 4, !tbaa !8
  br label %316, !llvm.loop !22

372:                                              ; preds = %320
  br label %373

373:                                              ; preds = %656, %372
  %374 = load i32, ptr %3, align 4, !tbaa !8
  %375 = add nsw i32 %374, -1
  store i32 %375, ptr %3, align 4, !tbaa !8
  %376 = icmp ne i32 %374, 0
  br i1 %376, label %377, label %657

377:                                              ; preds = %373
  %378 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %379 unwind label %432

379:                                              ; preds = %377
  %380 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %378, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %381 unwind label %432

381:                                              ; preds = %379
  %382 = load i32, ptr %4, align 4, !tbaa !8
  %383 = add nsw i32 %382, -1
  store i32 %383, ptr %4, align 4, !tbaa !8
  %384 = load i32, ptr %5, align 4, !tbaa !8
  %385 = add nsw i32 %384, -1
  store i32 %385, ptr %5, align 4, !tbaa !8
  %386 = load i32, ptr %4, align 4, !tbaa !8
  %387 = sext i32 %386 to i64
  %388 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %387) #7
  %389 = load i32, ptr %388, align 4, !tbaa !8
  %390 = load i32, ptr %5, align 4, !tbaa !8
  %391 = sext i32 %390 to i64
  %392 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %391) #7
  %393 = load i32, ptr %392, align 4, !tbaa !8
  %394 = icmp eq i32 %389, %393
  br i1 %394, label %395, label %651

395:                                              ; preds = %381
  %396 = load i32, ptr %4, align 4, !tbaa !8
  %397 = sext i32 %396 to i64
  %398 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %397) #7
  %399 = load i32, ptr %398, align 4, !tbaa !8
  %400 = icmp ne i32 %399, 0
  br i1 %400, label %446, label %401

401:                                              ; preds = %395
  %402 = load i32, ptr %5, align 4, !tbaa !8
  %403 = sext i32 %402 to i64
  %404 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %403) #7
  %405 = load i32, ptr %404, align 4, !tbaa !8
  %406 = icmp ne i32 %405, 0
  br i1 %406, label %446, label %407

407:                                              ; preds = %401
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #7
  %408 = load i32, ptr %5, align 4, !tbaa !8
  %409 = sext i32 %408 to i64
  %410 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %409) #7
  %411 = load i32, ptr %410, align 4, !tbaa !8
  %412 = load i32, ptr %4, align 4, !tbaa !8
  %413 = sext i32 %412 to i64
  %414 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %413) #7
  %415 = load i32, ptr %414, align 4, !tbaa !8
  %416 = sub nsw i32 %411, %415
  store i32 %416, ptr %45, align 4, !tbaa !8
  %417 = load i32, ptr %45, align 4, !tbaa !8
  %418 = icmp slt i32 %417, 0
  br i1 %418, label %419, label %436

419:                                              ; preds = %407
  %420 = load i32, ptr %4, align 4, !tbaa !8
  %421 = sext i32 %420 to i64
  %422 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %421) #7
  %423 = load i32, ptr %422, align 4, !tbaa !8
  %424 = sub nsw i32 %423, 1
  %425 = sext i32 %424 to i64
  %426 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %425) #7
  %427 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %426) #7
  %428 = load i32, ptr %45, align 4, !tbaa !8
  %429 = sext i32 %428 to i64
  %430 = add i64 %429, %427
  %431 = trunc i64 %430 to i32
  store i32 %431, ptr %45, align 4, !tbaa !8
  br label %436

432:                                              ; preds = %653, %651, %642, %640, %637, %635, %628, %626, %454, %452, %379, %377
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %8, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %9, align 4
  br label %659

436:                                              ; preds = %419, %407
  %437 = load i32, ptr %45, align 4, !tbaa !8
  %438 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %437)
          to label %439 unwind label %442

439:                                              ; preds = %436
  %440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %438, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %441 unwind label %442

441:                                              ; preds = %439
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %650

442:                                              ; preds = %439, %436
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %8, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #7
  br label %659

446:                                              ; preds = %401, %395
  %447 = load i32, ptr %4, align 4, !tbaa !8
  %448 = sext i32 %447 to i64
  %449 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %448) #7
  %450 = load i32, ptr %449, align 4, !tbaa !8
  %451 = icmp ne i32 %450, 0
  br i1 %451, label %457, label %452

452:                                              ; preds = %446
  %453 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef -1)
          to label %454 unwind label %432

454:                                              ; preds = %452
  %455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %453, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %456 unwind label %432

456:                                              ; preds = %454
  br label %649

457:                                              ; preds = %446
  %458 = load i32, ptr %5, align 4, !tbaa !8
  %459 = sext i32 %458 to i64
  %460 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %459) #7
  %461 = load i32, ptr %460, align 4, !tbaa !8
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %536, label %463

463:                                              ; preds = %457
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  %464 = load i32, ptr %4, align 4, !tbaa !8
  %465 = sext i32 %464 to i64
  %466 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %465) #7
  %467 = load i32, ptr %466, align 4, !tbaa !8
  store i32 %467, ptr %46, align 4, !tbaa !8
  br label %468

468:                                              ; preds = %489, %463
  %469 = load i32, ptr %4, align 4, !tbaa !8
  %470 = sext i32 %469 to i64
  %471 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %470) #7
  %472 = load i32, ptr %471, align 4, !tbaa !8
  %473 = icmp ne i32 %472, 0
  br i1 %473, label %474, label %499

474:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #7
  %475 = load i32, ptr %4, align 4, !tbaa !8
  %476 = sext i32 %475 to i64
  %477 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %476) #7
  %478 = load i32, ptr %477, align 4, !tbaa !8
  store i32 %478, ptr %47, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  store i32 1, ptr %48, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #7
  store i32 0, ptr %49, align 4, !tbaa !8
  br label %479

479:                                              ; preds = %484, %474
  %480 = load i32, ptr %48, align 4, !tbaa !8
  %481 = mul nsw i32 %480, 2
  %482 = load i32, ptr %47, align 4, !tbaa !8
  %483 = icmp slt i32 %481, %482
  br i1 %483, label %484, label %489

484:                                              ; preds = %479
  %485 = load i32, ptr %49, align 4, !tbaa !8
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr %49, align 4, !tbaa !8
  %487 = load i32, ptr %48, align 4, !tbaa !8
  %488 = shl i32 %487, 1
  store i32 %488, ptr %48, align 4, !tbaa !8
  br label %479, !llvm.loop !23

489:                                              ; preds = %479
  %490 = load i32, ptr %49, align 4, !tbaa !8
  %491 = sext i32 %490 to i64
  %492 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %491) #7
  %493 = load i32, ptr %4, align 4, !tbaa !8
  %494 = add nsw i32 %493, 1
  %495 = sext i32 %494 to i64
  %496 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %492, i64 noundef %495) #7
  %497 = load i32, ptr %496, align 4, !tbaa !8
  %498 = sub nsw i32 %497, 1
  store i32 %498, ptr %4, align 4, !tbaa !8
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #7
  br label %468, !llvm.loop !24

499:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #7
  %500 = load i32, ptr %5, align 4, !tbaa !8
  %501 = sext i32 %500 to i64
  %502 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %501) #7
  %503 = load i32, ptr %502, align 4, !tbaa !8
  %504 = load i32, ptr %4, align 4, !tbaa !8
  %505 = sext i32 %504 to i64
  %506 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %505) #7
  %507 = load i32, ptr %506, align 4, !tbaa !8
  %508 = sub nsw i32 %503, %507
  store i32 %508, ptr %50, align 4, !tbaa !8
  %509 = load i32, ptr %50, align 4, !tbaa !8
  %510 = icmp slt i32 %509, 0
  br i1 %510, label %511, label %524

511:                                              ; preds = %499
  %512 = load i32, ptr %4, align 4, !tbaa !8
  %513 = sext i32 %512 to i64
  %514 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %513) #7
  %515 = load i32, ptr %514, align 4, !tbaa !8
  %516 = sub nsw i32 %515, 1
  %517 = sext i32 %516 to i64
  %518 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %517) #7
  %519 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %518) #7
  %520 = load i32, ptr %50, align 4, !tbaa !8
  %521 = sext i32 %520 to i64
  %522 = add i64 %521, %519
  %523 = trunc i64 %522 to i32
  store i32 %523, ptr %50, align 4, !tbaa !8
  br label %524

524:                                              ; preds = %511, %499
  %525 = load i32, ptr %50, align 4, !tbaa !8
  %526 = load i32, ptr %46, align 4, !tbaa !8
  %527 = add nsw i32 %525, %526
  %528 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %527)
          to label %529 unwind label %532

529:                                              ; preds = %524
  %530 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %528, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %531 unwind label %532

531:                                              ; preds = %529
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %648

532:                                              ; preds = %529, %524
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %8, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %659

536:                                              ; preds = %457
  %537 = load i32, ptr %4, align 4, !tbaa !8
  %538 = sext i32 %537 to i64
  %539 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %538) #7
  %540 = load i32, ptr %539, align 4, !tbaa !8
  %541 = load i32, ptr %5, align 4, !tbaa !8
  %542 = sext i32 %541 to i64
  %543 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %542) #7
  %544 = load i32, ptr %543, align 4, !tbaa !8
  %545 = icmp sgt i32 %540, %544
  br i1 %545, label %546, label %616

546:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  %547 = load i32, ptr %4, align 4, !tbaa !8
  %548 = sext i32 %547 to i64
  %549 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %548) #7
  %550 = load i32, ptr %549, align 4, !tbaa !8
  %551 = load i32, ptr %5, align 4, !tbaa !8
  %552 = sext i32 %551 to i64
  %553 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %552) #7
  %554 = load i32, ptr %553, align 4, !tbaa !8
  %555 = sub nsw i32 %550, %554
  store i32 %555, ptr %51, align 4, !tbaa !8
  br label %556

556:                                              ; preds = %586, %546
  %557 = load i32, ptr %4, align 4, !tbaa !8
  %558 = sext i32 %557 to i64
  %559 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %558) #7
  %560 = load i32, ptr %559, align 4, !tbaa !8
  %561 = load i32, ptr %5, align 4, !tbaa !8
  %562 = sext i32 %561 to i64
  %563 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %562) #7
  %564 = load i32, ptr %563, align 4, !tbaa !8
  %565 = icmp sgt i32 %560, %564
  br i1 %565, label %566, label %596

566:                                              ; preds = %556
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #7
  %567 = load i32, ptr %4, align 4, !tbaa !8
  %568 = sext i32 %567 to i64
  %569 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %568) #7
  %570 = load i32, ptr %569, align 4, !tbaa !8
  %571 = load i32, ptr %5, align 4, !tbaa !8
  %572 = sext i32 %571 to i64
  %573 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %572) #7
  %574 = load i32, ptr %573, align 4, !tbaa !8
  %575 = sub nsw i32 %570, %574
  store i32 %575, ptr %52, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  store i32 1, ptr %53, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  store i32 0, ptr %54, align 4, !tbaa !8
  br label %576

576:                                              ; preds = %581, %566
  %577 = load i32, ptr %53, align 4, !tbaa !8
  %578 = mul nsw i32 %577, 2
  %579 = load i32, ptr %52, align 4, !tbaa !8
  %580 = icmp slt i32 %578, %579
  br i1 %580, label %581, label %586

581:                                              ; preds = %576
  %582 = load i32, ptr %54, align 4, !tbaa !8
  %583 = add nsw i32 %582, 1
  store i32 %583, ptr %54, align 4, !tbaa !8
  %584 = load i32, ptr %53, align 4, !tbaa !8
  %585 = shl i32 %584, 1
  store i32 %585, ptr %53, align 4, !tbaa !8
  br label %576, !llvm.loop !25

586:                                              ; preds = %576
  %587 = load i32, ptr %54, align 4, !tbaa !8
  %588 = sext i32 %587 to i64
  %589 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %588) #7
  %590 = load i32, ptr %4, align 4, !tbaa !8
  %591 = add nsw i32 %590, 1
  %592 = sext i32 %591 to i64
  %593 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %589, i64 noundef %592) #7
  %594 = load i32, ptr %593, align 4, !tbaa !8
  %595 = sub nsw i32 %594, 1
  store i32 %595, ptr %4, align 4, !tbaa !8
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #7
  br label %556, !llvm.loop !26

596:                                              ; preds = %556
  %597 = load i32, ptr %4, align 4, !tbaa !8
  %598 = load i32, ptr %5, align 4, !tbaa !8
  %599 = icmp eq i32 %597, %598
  br i1 %599, label %600, label %610

600:                                              ; preds = %596
  %601 = load i32, ptr %51, align 4, !tbaa !8
  %602 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %601)
          to label %603 unwind label %606

603:                                              ; preds = %600
  %604 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %602, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %605 unwind label %606

605:                                              ; preds = %603
  br label %615

606:                                              ; preds = %612, %610, %603, %600
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %8, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %659

610:                                              ; preds = %596
  %611 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef -1)
          to label %612 unwind label %606

612:                                              ; preds = %610
  %613 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %611, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %614 unwind label %606

614:                                              ; preds = %612
  br label %615

615:                                              ; preds = %614, %605
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  br label %647

616:                                              ; preds = %536
  %617 = load i32, ptr %5, align 4, !tbaa !8
  %618 = sext i32 %617 to i64
  %619 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %618) #7
  %620 = load i32, ptr %619, align 4, !tbaa !8
  %621 = load i32, ptr %4, align 4, !tbaa !8
  %622 = sext i32 %621 to i64
  %623 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef %622) #7
  %624 = load i32, ptr %623, align 4, !tbaa !8
  %625 = icmp sgt i32 %620, %624
  br i1 %625, label %626, label %631

626:                                              ; preds = %616
  %627 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef -1)
          to label %628 unwind label %432

628:                                              ; preds = %626
  %629 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %627, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %630 unwind label %432

630:                                              ; preds = %628
  br label %646

631:                                              ; preds = %616
  %632 = load i32, ptr %4, align 4, !tbaa !8
  %633 = load i32, ptr %5, align 4, !tbaa !8
  %634 = icmp eq i32 %632, %633
  br i1 %634, label %635, label %640

635:                                              ; preds = %631
  %636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 0)
          to label %637 unwind label %432

637:                                              ; preds = %635
  %638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %636, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %639 unwind label %432

639:                                              ; preds = %637
  br label %645

640:                                              ; preds = %631
  %641 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef -1)
          to label %642 unwind label %432

642:                                              ; preds = %640
  %643 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %641, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %644 unwind label %432

644:                                              ; preds = %642
  br label %645

645:                                              ; preds = %644, %639
  br label %646

646:                                              ; preds = %645, %630
  br label %647

647:                                              ; preds = %646, %615
  br label %648

648:                                              ; preds = %647, %531
  br label %649

649:                                              ; preds = %648, %456
  br label %650

650:                                              ; preds = %649, %441
  br label %656

651:                                              ; preds = %381
  %652 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef -1)
          to label %653 unwind label %432

653:                                              ; preds = %651
  %654 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %652, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %655 unwind label %432

655:                                              ; preds = %653
  br label %656

656:                                              ; preds = %655, %650
  br label %373, !llvm.loop !27

657:                                              ; preds = %373
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #7
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #7
  %658 = load i32, ptr %1, align 4
  ret i32 %658

659:                                              ; preds = %606, %532, %442, %432, %340, %311, %293
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #7
  br label %660

660:                                              ; preds = %659, %252, %205, %174
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %661

661:                                              ; preds = %660, %154
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #7
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #7
  br label %662

662:                                              ; preds = %661, %117
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  br label %663

663:                                              ; preds = %662, %99
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #7
  br label %664

664:                                              ; preds = %663, %95
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  br label %665

665:                                              ; preds = %664, %91
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  br label %666

666:                                              ; preds = %665, %87
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #7
  br label %667

667:                                              ; preds = %666, %83
  call void @llvm.lifetime.end.p0(i64 24, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #7
  br label %668

668:                                              ; preds = %667
  %669 = load ptr, ptr %8, align 8
  %670 = load i32, ptr %9, align 4
  %671 = insertvalue { ptr, i32 } poison, ptr %669, 0
  %672 = insertvalue { ptr, i32 } %671, i32 %670, 1
  resume { ptr, i32 } %672
}

declare noundef zeroext i1 @_ZNSt8ios_base15sync_with_stdioEb(i1 noundef zeroext) #1

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo(ptr noundef nonnull align 8 dereferenceable(264), ptr noundef) #2 align 2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #3

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFviiEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt8functionIFviiEEclEii(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt7reverseIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEvT_S7_(ptr, ptr) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #6

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #1

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

attributes #0 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = !{!15, !15, i64 0}
!15 = !{!"any pointer", !10, i64 0}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@_ZSt3cin = external global %"class.std::basic_istream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca %"class.std::vector", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca %"class.std::vector", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::vector", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca %"class.std::vector", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::vector", align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::vector.0", align 8
  %17 = alloca %"class.std::vector", align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.std::function", align 8
  %20 = alloca %class.anon, align 8
  %21 = alloca %"class.std::vector.0", align 8
  %22 = alloca %"class.std::vector", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::vector", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = tail call noundef zeroext i1 @_ZNSt8ios_base15sync_with_stdioEb(i1 noundef zeroext false)
  %29 = load ptr, ptr @_ZSt3cin, align 8, !tbaa !5
  %30 = getelementptr i8, ptr %29, i64 -24
  %31 = load i64, ptr %30, align 8
  %32 = getelementptr inbounds i8, ptr @_ZSt3cin, i64 %31
  %33 = tail call noundef ptr @_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo(ptr noundef nonnull align 8 dereferenceable(264) %32, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #7
  %34 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %1)
  %35 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 4 dereferenceable(4) %2)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #7
  %36 = load i32, ptr %1, align 4, !tbaa !8
  %37 = sext i32 %36 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %37, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %38 unwind label %54

38:                                               ; preds = %0
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #7
  %39 = load i32, ptr %1, align 4, !tbaa !8
  %40 = sext i32 %39 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %40, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %41 unwind label %56

41:                                               ; preds = %38
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #7
  %42 = load i32, ptr %1, align 4, !tbaa !8
  %43 = sext i32 %42 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %43, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %44 unwind label %58

44:                                               ; preds = %41
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #7
  %45 = load i32, ptr %1, align 4, !tbaa !8
  %46 = sext i32 %45 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %46, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %47 unwind label %60

47:                                               ; preds = %44
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #7
  %48 = load i32, ptr %1, align 4, !tbaa !8
  %49 = sext i32 %48 to i64
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #7
  store i32 -2, ptr %14, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %49, ptr noundef nonnull align 4 dereferenceable(4) %14, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %50 unwind label %62

50:                                               ; preds = %47
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #7
  %51 = load i32, ptr %1, align 4, !tbaa !8
  %52 = icmp sgt i32 %51, 0
  br i1 %52, label %.lr.ph, label %._crit_edge

.preheader133:                                    ; preds = %66
  %53 = icmp sgt i32 %70, 0
  br i1 %53, label %.lr.ph137, label %._crit_edge

54:                                               ; preds = %0
  %55 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #7
  br label %411

56:                                               ; preds = %38
  %57 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #7
  br label %410

58:                                               ; preds = %41
  %59 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  br label %409

60:                                               ; preds = %44
  %61 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  br label %408

62:                                               ; preds = %47
  %63 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #7
  br label %407

.lr.ph:                                           ; preds = %50, %66
  %indvars.iv = phi i64 [ %indvars.iv.next, %66 ], [ 0, %50 ]
  %64 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #7
  %65 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %64)
          to label %66 unwind label %73

66:                                               ; preds = %.lr.ph
  %67 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv) #7
  %68 = load i32, ptr %67, align 4, !tbaa !8
  %69 = add nsw i32 %68, -1
  store i32 %69, ptr %67, align 4, !tbaa !8
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %70 = load i32, ptr %1, align 4, !tbaa !8
  %71 = sext i32 %70 to i64
  %72 = icmp slt i64 %indvars.iv.next, %71
  br i1 %72, label %.lr.ph, label %.preheader133, !llvm.loop !11

73:                                               ; preds = %.lr.ph
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %406

._crit_edge:                                      ; preds = %.lr.ph137, %50, %.preheader133
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #7
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #7
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #7
  store i32 0, ptr %18, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %20) #7
  store ptr %9, ptr %20, align 8, !tbaa !13
  %75 = getelementptr inbounds i8, ptr %20, i64 8
  store ptr %17, ptr %75, align 8, !tbaa !13
  %76 = getelementptr inbounds i8, ptr %20, i64 16
  store ptr %16, ptr %76, align 8, !tbaa !13
  %77 = getelementptr inbounds i8, ptr %20, i64 24
  store ptr %18, ptr %77, align 8, !tbaa !13
  %78 = getelementptr inbounds i8, ptr %20, i64 32
  store ptr %19, ptr %78, align 8, !tbaa !13
  %79 = getelementptr inbounds i8, ptr %20, i64 40
  store ptr %5, ptr %79, align 8, !tbaa !13
  %80 = getelementptr inbounds i8, ptr %20, i64 48
  store ptr %13, ptr %80, align 8, !tbaa !13
  %81 = getelementptr inbounds i8, ptr %20, i64 56
  store ptr %11, ptr %81, align 8, !tbaa !13
  invoke void @"_ZNSt8functionIFviiEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(64) %20)
          to label %91 unwind label %95

.lr.ph137:                                        ; preds = %.preheader133, %.lr.ph137
  %indvars.iv176 = phi i64 [ %indvars.iv.next177, %.lr.ph137 ], [ 0, %.preheader133 ]
  %82 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef %indvars.iv176) #7
  %83 = load i32, ptr %82, align 4, !tbaa !8
  %84 = sext i32 %83 to i64
  %85 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %84) #7
  %86 = load i32, ptr %85, align 4, !tbaa !8
  %87 = add nsw i32 %86, 1
  store i32 %87, ptr %85, align 4, !tbaa !8
  %indvars.iv.next177 = add nuw nsw i64 %indvars.iv176, 1
  %88 = load i32, ptr %1, align 4, !tbaa !8
  %89 = sext i32 %88 to i64
  %90 = icmp slt i64 %indvars.iv.next177, %89
  br i1 %90, label %.lr.ph137, label %._crit_edge, !llvm.loop !15

91:                                               ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #7
  %92 = load i32, ptr %1, align 4, !tbaa !8
  %93 = icmp sgt i32 %92, 0
  br i1 %93, label %.lr.ph141, label %.preheader131

.preheader132:                                    ; preds = %106
  %94 = icmp sgt i32 %110, 0
  br i1 %94, label %.lr.ph144, label %.preheader131

95:                                               ; preds = %._crit_edge
  %96 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #7
  br label %405

.lr.ph141:                                        ; preds = %91, %106
  %indvars.iv179 = phi i64 [ %indvars.iv.next180, %106 ], [ 0, %91 ]
  %.091139 = phi i32 [ %spec.select, %106 ], [ 1, %91 ]
  %97 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %indvars.iv179) #7
  %98 = load i32, ptr %97, align 4, !tbaa !8
  %.not116 = icmp eq i32 %98, 0
  br i1 %.not116, label %99, label %106

99:                                               ; preds = %.lr.ph141
  %100 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %indvars.iv179) #7
  %101 = load i32, ptr %100, align 4, !tbaa !8
  %.not117 = icmp eq i32 %101, 0
  br i1 %.not117, label %102, label %106

102:                                              ; preds = %99
  %103 = trunc nuw nsw i64 %indvars.iv179 to i32
  invoke void @_ZNKSt8functionIFviiEEclEii(ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef %103, i32 noundef %.091139)
          to label %106 unwind label %104

104:                                              ; preds = %102
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %404

106:                                              ; preds = %102, %99, %.lr.ph141
  %107 = load i32, ptr %18, align 4, !tbaa !8
  %108 = icmp eq i32 %107, %.091139
  %109 = zext i1 %108 to i32
  %spec.select = add nuw nsw i32 %.091139, %109
  %indvars.iv.next180 = add nuw nsw i64 %indvars.iv179, 1
  %110 = load i32, ptr %1, align 4, !tbaa !8
  %111 = sext i32 %110 to i64
  %112 = icmp slt i64 %indvars.iv.next180, %111
  br i1 %112, label %.lr.ph141, label %.preheader132, !llvm.loop !16

.preheader131:                                    ; preds = %120, %91, %.preheader132
  %113 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  %.not173 = icmp eq i64 %113, 0
  br i1 %.not173, label %._crit_edge150, label %.lr.ph149

.lr.ph144:                                        ; preds = %.preheader132, %120
  %indvars.iv182 = phi i64 [ %indvars.iv.next183, %120 ], [ 0, %.preheader132 ]
  %.293143 = phi i32 [ %spec.select128, %120 ], [ %spec.select, %.preheader132 ]
  %114 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %indvars.iv182) #7
  %115 = load i32, ptr %114, align 4, !tbaa !8
  %.not115 = icmp eq i32 %115, 0
  br i1 %.not115, label %116, label %120

116:                                              ; preds = %.lr.ph144
  %117 = trunc nuw nsw i64 %indvars.iv182 to i32
  invoke void @_ZNKSt8functionIFviiEEclEii(ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef %117, i32 noundef %.293143)
          to label %120 unwind label %118

118:                                              ; preds = %116
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %404

120:                                              ; preds = %116, %.lr.ph144
  %121 = load i32, ptr %18, align 4, !tbaa !8
  %122 = icmp eq i32 %121, %.293143
  %123 = zext i1 %122 to i32
  %spec.select128 = add nuw nsw i32 %.293143, %123
  %indvars.iv.next183 = add nuw nsw i64 %indvars.iv182, 1
  %124 = load i32, ptr %1, align 4, !tbaa !8
  %125 = sext i32 %124 to i64
  %126 = icmp slt i64 %indvars.iv.next183, %125
  br i1 %126, label %.lr.ph144, label %.preheader131, !llvm.loop !17

._crit_edge150:                                   ; preds = %._crit_edge147, %.preheader131
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #7
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #7
  %127 = load i32, ptr %1, align 4, !tbaa !8
  %128 = add nsw i32 %127, 1
  %129 = sext i32 %128 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %129, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %149 unwind label %153

.lr.ph149:                                        ; preds = %.preheader131, %._crit_edge147
  %indvars.iv188 = phi i64 [ %indvars.iv.next189, %._crit_edge147 ], [ 0, %.preheader131 ]
  %130 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %indvars.iv188) #7
  %131 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %130) #7
  %132 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %indvars.iv188) #7
  %133 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %132) #7
  invoke void @_ZSt7reverseIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEvT_S7_(ptr %131, ptr %133)
          to label %.preheader130 unwind label %138

.preheader130:                                    ; preds = %.lr.ph149
  %134 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %indvars.iv188) #7
  %135 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %134) #7
  %.not174 = icmp eq i64 %135, 0
  br i1 %.not174, label %._crit_edge147, label %.lr.ph146

._crit_edge147:                                   ; preds = %.lr.ph146, %.preheader130
  %indvars.iv.next189 = add nuw nsw i64 %indvars.iv188, 1
  %136 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  %137 = icmp ugt i64 %136, %indvars.iv.next189
  br i1 %137, label %.lr.ph149, label %._crit_edge150, !llvm.loop !18

138:                                              ; preds = %.lr.ph149
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %404

.lr.ph146:                                        ; preds = %.preheader130, %.lr.ph146
  %indvars.iv185 = phi i64 [ %indvars.iv.next186, %.lr.ph146 ], [ 0, %.preheader130 ]
  %140 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %indvars.iv188) #7
  %141 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %140, i64 noundef %indvars.iv185) #7
  %142 = load i32, ptr %141, align 4, !tbaa !8
  %143 = sext i32 %142 to i64
  %144 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %143) #7
  %145 = trunc nuw nsw i64 %indvars.iv185 to i32
  store i32 %145, ptr %144, align 4, !tbaa !8
  %indvars.iv.next186 = add nuw nsw i64 %indvars.iv185, 1
  %146 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %indvars.iv188) #7
  %147 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %146) #7
  %148 = icmp ugt i64 %147, %indvars.iv.next186
  br i1 %148, label %.lr.ph146, label %._crit_edge147, !llvm.loop !19

149:                                              ; preds = %._crit_edge150
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(24) %22)
          to label %150 unwind label %155

150:                                              ; preds = %149
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #7
  %151 = load i32, ptr %1, align 4, !tbaa !8
  %.not151 = icmp slt i32 %151, 1
  br i1 %.not151, label %.preheader, label %.lr.ph154

.preheader129:                                    ; preds = %.lr.ph154
  %152 = icmp sgt i32 %166, 1
  br i1 %152, label %.lr.ph162, label %.preheader

153:                                              ; preds = %._crit_edge150
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %157

155:                                              ; preds = %149
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #7
  br label %157

157:                                              ; preds = %155, %153
  %.pn = phi { ptr, i32 } [ %156, %155 ], [ %154, %153 ]
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #7
  br label %403

.lr.ph154:                                        ; preds = %150, %.lr.ph154
  %indvars.iv191 = phi i64 [ %indvars.iv.next192, %.lr.ph154 ], [ 1, %150 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #7
  store i32 0, ptr %24, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #7
  %158 = add nsw i64 %indvars.iv191, -1
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %13, i64 noundef %158) #7
  %160 = load i32, ptr %159, align 4, !tbaa !8
  %161 = add nsw i32 %160, 1
  store i32 %161, ptr %25, align 4, !tbaa !8
  %162 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25)
  %163 = load i32, ptr %162, align 4, !tbaa !8
  %164 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef 0) #7
  %165 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %164, i64 noundef %indvars.iv191) #7
  store i32 %163, ptr %165, align 4, !tbaa !8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #7
  %indvars.iv.next192 = add nuw nsw i64 %indvars.iv191, 1
  %166 = load i32, ptr %1, align 4, !tbaa !8
  %167 = sext i32 %166 to i64
  %.not.not = icmp slt i64 %indvars.iv191, %167
  br i1 %.not.not, label %.lr.ph154, label %.preheader129, !llvm.loop !20

.preheader:                                       ; preds = %._crit_edge159, %150, %.preheader129
  %168 = load i32, ptr %2, align 4, !tbaa !8
  %169 = add nsw i32 %168, -1
  store i32 %169, ptr %2, align 4, !tbaa !8
  %.not105170 = icmp eq i32 %168, 0
  br i1 %.not105170, label %._crit_edge172, label %.lr.ph171

.lr.ph162:                                        ; preds = %.preheader129, %._crit_edge159
  %indvars.iv197 = phi i64 [ %indvars.iv.next198, %._crit_edge159 ], [ 1, %.preheader129 ]
  %170 = phi i32 [ %177, %._crit_edge159 ], [ %166, %.preheader129 ]
  %.088160 = phi i32 [ %178, %._crit_edge159 ], [ 1, %.preheader129 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #7
  %171 = add nsw i32 %170, 1
  %172 = sext i32 %171 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #7
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  invoke void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %172, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %173 unwind label %180

173:                                              ; preds = %.lr.ph162
  invoke void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %174 unwind label %182

174:                                              ; preds = %173
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  %175 = load i32, ptr %1, align 4, !tbaa !8
  %.not114155 = icmp slt i32 %175, 1
  br i1 %.not114155, label %._crit_edge159, label %.lr.ph158

.lr.ph158:                                        ; preds = %174
  %176 = add nsw i64 %indvars.iv197, -1
  br label %185

._crit_edge159:                                   ; preds = %185, %174
  %177 = phi i32 [ %175, %174 ], [ %195, %185 ]
  %178 = shl nsw i32 %.088160, 1
  %indvars.iv.next198 = add nuw nsw i64 %indvars.iv197, 1
  %179 = icmp slt i32 %178, %177
  br i1 %179, label %.lr.ph162, label %.preheader, !llvm.loop !21

180:                                              ; preds = %.lr.ph162
  %181 = landingpad { ptr, i32 }
          cleanup
  br label %184

182:                                              ; preds = %173
  %183 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  br label %184

184:                                              ; preds = %182, %180
  %.pn111 = phi { ptr, i32 } [ %183, %182 ], [ %181, %180 ]
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  br label %403

185:                                              ; preds = %.lr.ph158, %185
  %indvars.iv194 = phi i64 [ 1, %.lr.ph158 ], [ %indvars.iv.next195, %185 ]
  %186 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %176) #7
  %187 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %176) #7
  %188 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %187, i64 noundef %indvars.iv194) #7
  %189 = load i32, ptr %188, align 4, !tbaa !8
  %190 = sext i32 %189 to i64
  %191 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %186, i64 noundef %190) #7
  %192 = load i32, ptr %191, align 4, !tbaa !8
  %193 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %indvars.iv197) #7
  %194 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %193, i64 noundef %indvars.iv194) #7
  store i32 %192, ptr %194, align 4, !tbaa !8
  %indvars.iv.next195 = add nuw nsw i64 %indvars.iv194, 1
  %195 = load i32, ptr %1, align 4, !tbaa !8
  %196 = sext i32 %195 to i64
  %.not114.not = icmp slt i64 %indvars.iv194, %196
  br i1 %.not114.not, label %185, label %._crit_edge159, !llvm.loop !22

.lr.ph171:                                        ; preds = %.preheader, %400
  %197 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %198 unwind label %245

198:                                              ; preds = %.lr.ph171
  %199 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %200 unwind label %245

200:                                              ; preds = %198
  %201 = load i32, ptr %3, align 4, !tbaa !8
  %202 = add nsw i32 %201, -1
  store i32 %202, ptr %3, align 4, !tbaa !8
  %203 = load i32, ptr %4, align 4, !tbaa !8
  %204 = add nsw i32 %203, -1
  store i32 %204, ptr %4, align 4, !tbaa !8
  %205 = sext i32 %202 to i64
  %206 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %205) #7
  %207 = load i32, ptr %206, align 4, !tbaa !8
  %208 = load i32, ptr %4, align 4, !tbaa !8
  %209 = sext i32 %208 to i64
  %210 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %209) #7
  %211 = load i32, ptr %210, align 4, !tbaa !8
  %212 = icmp eq i32 %207, %211
  br i1 %212, label %213, label %.invoke205

213:                                              ; preds = %200
  %214 = load i32, ptr %3, align 4, !tbaa !8
  %215 = sext i32 %214 to i64
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %215) #7
  %217 = load i32, ptr %216, align 4, !tbaa !8
  %.not106 = icmp eq i32 %217, 0
  br i1 %.not106, label %218, label %253

218:                                              ; preds = %213
  %219 = load i32, ptr %4, align 4, !tbaa !8
  %220 = sext i32 %219 to i64
  %221 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %220) #7
  %222 = load i32, ptr %221, align 4, !tbaa !8
  %.not107 = icmp eq i32 %222, 0
  br i1 %.not107, label %223, label %253

223:                                              ; preds = %218
  %224 = load i32, ptr %4, align 4, !tbaa !8
  %225 = sext i32 %224 to i64
  %226 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %225) #7
  %227 = load i32, ptr %226, align 4, !tbaa !8
  %228 = load i32, ptr %3, align 4, !tbaa !8
  %229 = sext i32 %228 to i64
  %230 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %229) #7
  %231 = load i32, ptr %230, align 4, !tbaa !8
  %232 = sub nsw i32 %227, %231
  %233 = icmp slt i32 %232, 0
  br i1 %233, label %234, label %247

234:                                              ; preds = %223
  %235 = load i32, ptr %3, align 4, !tbaa !8
  %236 = sext i32 %235 to i64
  %237 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %236) #7
  %238 = load i32, ptr %237, align 4, !tbaa !8
  %239 = add nsw i32 %238, -1
  %240 = sext i32 %239 to i64
  %241 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %240) #7
  %242 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %241) #7
  %243 = trunc i64 %242 to i32
  %244 = add i32 %232, %243
  br label %247

245:                                              ; preds = %.invoke205, %.invoke, %198, %.lr.ph171
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %403

247:                                              ; preds = %234, %223
  %.085 = phi i32 [ %244, %234 ], [ %232, %223 ]
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %.085)
          to label %249 unwind label %251

249:                                              ; preds = %247
  %250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %248, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %400 unwind label %251

251:                                              ; preds = %249, %247
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %403

253:                                              ; preds = %218, %213
  %254 = load i32, ptr %3, align 4, !tbaa !8
  %255 = sext i32 %254 to i64
  %256 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %255) #7
  %257 = load i32, ptr %256, align 4, !tbaa !8
  %.not108 = icmp eq i32 %257, 0
  br i1 %.not108, label %.invoke205, label %258

258:                                              ; preds = %253
  %259 = load i32, ptr %4, align 4, !tbaa !8
  %260 = sext i32 %259 to i64
  %261 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %260) #7
  %262 = load i32, ptr %261, align 4, !tbaa !8
  %.not109 = icmp eq i32 %262, 0
  %263 = load i32, ptr %3, align 4, !tbaa !8
  %264 = sext i32 %263 to i64
  %265 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %264) #7
  %266 = load i32, ptr %265, align 4, !tbaa !8
  br i1 %.not109, label %267, label %320

267:                                              ; preds = %258
  %268 = load i32, ptr %3, align 4, !tbaa !8
  %269 = sext i32 %268 to i64
  %270 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %269) #7
  %271 = load i32, ptr %270, align 4, !tbaa !8
  %.not110166 = icmp eq i32 %271, 0
  br i1 %.not110166, label %._crit_edge169, label %.lr.ph168

.lr.ph168:                                        ; preds = %267, %280
  %272 = load i32, ptr %3, align 4, !tbaa !8
  %273 = sext i32 %272 to i64
  %274 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %273) #7
  %275 = load i32, ptr %274, align 4, !tbaa !8
  br label %276

276:                                              ; preds = %276, %.lr.ph168
  %.082 = phi i32 [ 1, %.lr.ph168 ], [ %277, %276 ]
  %.081 = phi i32 [ 0, %.lr.ph168 ], [ %279, %276 ]
  %277 = shl nsw i32 %.082, 1
  %278 = icmp slt i32 %277, %275
  %279 = add nuw nsw i32 %.081, 1
  br i1 %278, label %276, label %280, !llvm.loop !23

280:                                              ; preds = %276
  %281 = zext nneg i32 %.081 to i64
  %282 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %281) #7
  %283 = load i32, ptr %3, align 4, !tbaa !8
  %284 = add nsw i32 %283, 1
  %285 = sext i32 %284 to i64
  %286 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %282, i64 noundef %285) #7
  %287 = load i32, ptr %286, align 4, !tbaa !8
  %288 = add nsw i32 %287, -1
  store i32 %288, ptr %3, align 4, !tbaa !8
  %289 = sext i32 %288 to i64
  %290 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %289) #7
  %291 = load i32, ptr %290, align 4, !tbaa !8
  %.not110 = icmp eq i32 %291, 0
  br i1 %.not110, label %._crit_edge169, label %.lr.ph168, !llvm.loop !24

._crit_edge169:                                   ; preds = %280, %267
  %292 = load i32, ptr %4, align 4, !tbaa !8
  %293 = sext i32 %292 to i64
  %294 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %293) #7
  %295 = load i32, ptr %294, align 4, !tbaa !8
  %296 = load i32, ptr %3, align 4, !tbaa !8
  %297 = sext i32 %296 to i64
  %298 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %297) #7
  %299 = load i32, ptr %298, align 4, !tbaa !8
  %300 = sub nsw i32 %295, %299
  %301 = icmp slt i32 %300, 0
  br i1 %301, label %302, label %313

302:                                              ; preds = %._crit_edge169
  %303 = load i32, ptr %3, align 4, !tbaa !8
  %304 = sext i32 %303 to i64
  %305 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %304) #7
  %306 = load i32, ptr %305, align 4, !tbaa !8
  %307 = add nsw i32 %306, -1
  %308 = sext i32 %307 to i64
  %309 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %308) #7
  %310 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %309) #7
  %311 = trunc i64 %310 to i32
  %312 = add i32 %300, %311
  br label %313

313:                                              ; preds = %302, %._crit_edge169
  %.080 = phi i32 [ %312, %302 ], [ %300, %._crit_edge169 ]
  %314 = add nsw i32 %.080, %266
  %315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %314)
          to label %316 unwind label %318

316:                                              ; preds = %313
  %317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %400 unwind label %318

318:                                              ; preds = %316, %313
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %403

320:                                              ; preds = %258
  %321 = load i32, ptr %4, align 4, !tbaa !8
  %322 = sext i32 %321 to i64
  %323 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %322) #7
  %324 = load i32, ptr %323, align 4, !tbaa !8
  %325 = icmp sgt i32 %266, %324
  br i1 %325, label %326, label %383

326:                                              ; preds = %320
  %327 = load i32, ptr %3, align 4, !tbaa !8
  %328 = sext i32 %327 to i64
  %329 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %328) #7
  %330 = load i32, ptr %329, align 4, !tbaa !8
  %331 = load i32, ptr %4, align 4, !tbaa !8
  %332 = sext i32 %331 to i64
  %333 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %332) #7
  %334 = load i32, ptr %333, align 4, !tbaa !8
  %335 = sub nsw i32 %330, %334
  %336 = load i32, ptr %3, align 4, !tbaa !8
  %337 = sext i32 %336 to i64
  %338 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %337) #7
  %339 = load i32, ptr %338, align 4, !tbaa !8
  %340 = load i32, ptr %4, align 4, !tbaa !8
  %341 = sext i32 %340 to i64
  %342 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %341) #7
  %343 = load i32, ptr %342, align 4, !tbaa !8
  %344 = icmp sgt i32 %339, %343
  br i1 %344, label %.lr.ph164, label %._crit_edge165

.lr.ph164:                                        ; preds = %326, %358
  %345 = load i32, ptr %3, align 4, !tbaa !8
  %346 = sext i32 %345 to i64
  %347 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %346) #7
  %348 = load i32, ptr %347, align 4, !tbaa !8
  %349 = load i32, ptr %4, align 4, !tbaa !8
  %350 = sext i32 %349 to i64
  %351 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %350) #7
  %352 = load i32, ptr %351, align 4, !tbaa !8
  %353 = sub nsw i32 %348, %352
  br label %354

354:                                              ; preds = %354, %.lr.ph164
  %.067 = phi i32 [ 1, %.lr.ph164 ], [ %355, %354 ]
  %.0 = phi i32 [ 0, %.lr.ph164 ], [ %357, %354 ]
  %355 = shl nsw i32 %.067, 1
  %356 = icmp slt i32 %355, %353
  %357 = add nuw nsw i32 %.0, 1
  br i1 %356, label %354, label %358, !llvm.loop !25

358:                                              ; preds = %354
  %359 = zext nneg i32 %.0 to i64
  %360 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %359) #7
  %361 = load i32, ptr %3, align 4, !tbaa !8
  %362 = add nsw i32 %361, 1
  %363 = sext i32 %362 to i64
  %364 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %360, i64 noundef %363) #7
  %365 = load i32, ptr %364, align 4, !tbaa !8
  %366 = add nsw i32 %365, -1
  store i32 %366, ptr %3, align 4, !tbaa !8
  %367 = sext i32 %366 to i64
  %368 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %367) #7
  %369 = load i32, ptr %368, align 4, !tbaa !8
  %370 = load i32, ptr %4, align 4, !tbaa !8
  %371 = sext i32 %370 to i64
  %372 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %371) #7
  %373 = load i32, ptr %372, align 4, !tbaa !8
  %374 = icmp sgt i32 %369, %373
  br i1 %374, label %.lr.ph164, label %._crit_edge165, !llvm.loop !26

._crit_edge165:                                   ; preds = %358, %326
  %375 = load i32, ptr %3, align 4, !tbaa !8
  %376 = load i32, ptr %4, align 4, !tbaa !8
  %377 = icmp eq i32 %375, %376
  %378 = select i1 %377, i32 %335, i32 -1
  %379 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %378)
          to label %.invoke204 unwind label %380

380:                                              ; preds = %._crit_edge165, %.invoke204
  %381 = landingpad { ptr, i32 }
          cleanup
  br label %403

.invoke204:                                       ; preds = %._crit_edge165
  %382 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %379, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %400 unwind label %380

383:                                              ; preds = %320
  %384 = load i32, ptr %4, align 4, !tbaa !8
  %385 = sext i32 %384 to i64
  %386 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %385) #7
  %387 = load i32, ptr %386, align 4, !tbaa !8
  %388 = load i32, ptr %3, align 4, !tbaa !8
  %389 = sext i32 %388 to i64
  %390 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %389) #7
  %391 = load i32, ptr %390, align 4, !tbaa !8
  %392 = icmp sgt i32 %387, %391
  br i1 %392, label %.invoke205, label %393

393:                                              ; preds = %383
  %394 = load i32, ptr %3, align 4, !tbaa !8
  %395 = load i32, ptr %4, align 4, !tbaa !8
  %396 = icmp ne i32 %394, %395
  %. = sext i1 %396 to i32
  br label %.invoke205

.invoke205:                                       ; preds = %200, %393, %383, %253
  %397 = phi i32 [ -1, %253 ], [ -1, %383 ], [ %., %393 ], [ -1, %200 ]
  %398 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %397)
          to label %.invoke unwind label %245

.invoke:                                          ; preds = %.invoke205
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %398, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %400 unwind label %245

400:                                              ; preds = %.invoke204, %.invoke, %316, %249
  %401 = load i32, ptr %2, align 4, !tbaa !8
  %402 = add nsw i32 %401, -1
  store i32 %402, ptr %2, align 4, !tbaa !8
  %.not105 = icmp eq i32 %401, 0
  br i1 %.not105, label %._crit_edge172, label %.lr.ph171, !llvm.loop !27

._crit_edge172:                                   ; preds = %400, %.preheader
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #7
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #7
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #7
  ret i32 0

403:                                              ; preds = %380, %318, %251, %245, %184, %157
  %.pn111.pn = phi { ptr, i32 } [ %.pn111, %184 ], [ %381, %380 ], [ %246, %245 ], [ %319, %318 ], [ %252, %251 ], [ %.pn, %157 ]
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #7
  br label %404

404:                                              ; preds = %403, %138, %118, %104
  %.pn118 = phi { ptr, i32 } [ %105, %104 ], [ %119, %118 ], [ %139, %138 ], [ %.pn111.pn, %403 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %405

405:                                              ; preds = %404, %95
  %.pn118.pn = phi { ptr, i32 } [ %.pn118, %404 ], [ %96, %95 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #7
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #7
  br label %406

406:                                              ; preds = %405, %73
  %.pn121 = phi { ptr, i32 } [ %74, %73 ], [ %.pn118.pn, %405 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  br label %407

407:                                              ; preds = %406, %62
  %.pn121.pn = phi { ptr, i32 } [ %.pn121, %406 ], [ %63, %62 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #7
  br label %408

408:                                              ; preds = %407, %60
  %.pn121.pn.pn = phi { ptr, i32 } [ %.pn121.pn, %407 ], [ %61, %60 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br label %409

409:                                              ; preds = %408, %58
  %.pn121.pn.pn.pn = phi { ptr, i32 } [ %.pn121.pn.pn, %408 ], [ %59, %58 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  br label %410

410:                                              ; preds = %409, %56
  %.pn121.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn121.pn.pn.pn, %409 ], [ %57, %56 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  br label %411

411:                                              ; preds = %410, %54
  %.pn121.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn121.pn.pn.pn.pn, %410 ], [ %55, %54 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #7
  resume { ptr, i32 } %.pn121.pn.pn.pn.pn.pn
}

declare noundef zeroext i1 @_ZNSt8ios_base15sync_with_stdioEb(i1 noundef zeroext) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo(ptr noundef nonnull align 8 dereferenceable(264), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #3

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2EmRKiRKS0_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFviiEEC2IZ4mainE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt8functionIFviiEEclEii(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt7reverseIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEvT_S7_(ptr, ptr) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIS_IiSaIiEESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #6

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

attributes #0 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !14, i64 0}
!14 = !{!"any pointer", !10, i64 0}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass