; LLVM IR from VastoLorde95/Competitive-Programming :: CodeChef/WF/Medium Hard/GOODPROB/A.ll (Z5solveii)

; 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::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::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, int>, std::_Select1st<std::pair<const std::pair<int, int>, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, int>, std::_Select1st<std::pair<const std::pair<int, int>, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.std::pair" = type { i32, i32 }

@sup = external dso_local global [128 x %"class.std::vector"], align 16
@sub = external dso_local global [128 x %"class.std::vector"], align 16
@a = external dso_local global [100100 x i32], align 16
@posi = external dso_local global [16384 x %"class.std::vector"], align 16
@maxpos = external dso_local global %"class.std::map", align 8
@ans = external dso_local global i64, align 8
@isFree = external dso_local global [20 x i8], align 16
@dp1 = external dso_local global [20 x [128 x [128 x i32]]], align 16
@dp2 = external dso_local global [20 x [128 x [128 x i32]]], align 16

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z5solveii(i32 noundef %0, i32 noundef %1) #1 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca %"struct.std::pair", align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i64, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i64, align 8
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %46 = alloca ptr, align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %49 = alloca i32, align 4
  %50 = alloca ptr, align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %53 = alloca i32, align 4
  %54 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %57 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca ptr, align 8
  %64 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %65 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %66 = alloca i32, align 4
  %67 = alloca ptr, align 8
  %68 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %69 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %73 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %74 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %75 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %76 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %77 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %78 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %79 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %85 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %86 = alloca i32, align 4
  %87 = alloca ptr, align 8
  %88 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %89 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca ptr, align 8
  %95 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %96 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %97 = alloca i32, align 4
  %98 = alloca ptr, align 8
  %99 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %100 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %104 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %105 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %106 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %107 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %108 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %109 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %110 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca ptr, align 8
  %115 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %116 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %117 = alloca i32, align 4
  %118 = alloca ptr, align 8
  %119 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %120 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %121 = alloca i32, align 4
  %122 = alloca ptr, align 8
  %123 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %124 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %125 = alloca i32, align 4
  %126 = alloca ptr, align 8
  %127 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %128 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %129 = alloca i32, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store i32 %1, ptr %5, align 4, !tbaa !5
  %130 = load i32, ptr %4, align 4, !tbaa !5
  %131 = add nsw i32 %130, 1
  %132 = load i32, ptr %5, align 4, !tbaa !5
  %133 = icmp eq i32 %131, %132
  br i1 %133, label %134, label %135

134:                                              ; preds = %2
  store i32 19, ptr %3, align 4
  br label %1096

135:                                              ; preds = %2
  %136 = load i32, ptr %5, align 4, !tbaa !5
  %137 = load i32, ptr %4, align 4, !tbaa !5
  %138 = sub nsw i32 %136, %137
  %139 = sub nsw i32 %138, 1
  %140 = icmp eq i32 %139, 1
  br i1 %140, label %141, label %233

141:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #5
  store i32 -1, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #5
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %142

142:                                              ; preds = %160, %141
  %143 = load i32, ptr %7, align 4, !tbaa !5
  %144 = icmp slt i32 %143, 20
  br i1 %144, label %146, label %145

145:                                              ; preds = %142
  store i32 2, ptr %8, align 4
  br label %163

146:                                              ; preds = %142
  %147 = load i32, ptr %7, align 4, !tbaa !5
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds [20 x i8], ptr @isFree, i64 0, i64 %148
  %150 = load i8, ptr %149, align 1, !tbaa !9, !range !11, !noundef !12
  %151 = trunc i8 %150 to i1
  %152 = zext i1 %151 to i32
  %153 = icmp eq i32 %152, 0
  br i1 %153, label %154, label %159

154:                                              ; preds = %146
  %155 = load i32, ptr %7, align 4, !tbaa !5
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds [20 x i8], ptr @isFree, i64 0, i64 %156
  store i8 1, ptr %157, align 1, !tbaa !9
  %158 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %158, ptr %6, align 4, !tbaa !5
  store i32 2, ptr %8, align 4
  br label %163

159:                                              ; preds = %146
  br label %160

160:                                              ; preds = %159
  %161 = load i32, ptr %7, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr %7, align 4, !tbaa !5
  br label %142, !llvm.loop !13

163:                                              ; preds = %154, %145
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #5
  br label %164

164:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #5
  %165 = load i32, ptr %4, align 4, !tbaa !5
  %166 = add nsw i32 %165, 1
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %167
  %169 = load i32, ptr %168, align 4, !tbaa !5
  store i32 %169, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #5
  %170 = load i32, ptr %9, align 4, !tbaa !5
  %171 = ashr i32 %170, 7
  store i32 %171, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #5
  %172 = load i32, ptr %9, align 4, !tbaa !5
  %173 = and i32 %172, 127
  store i32 %173, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  %174 = load i32, ptr %11, align 4, !tbaa !5
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %175
  store ptr %176, ptr %12, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  %177 = load ptr, ptr %12, align 8, !tbaa !15
  %178 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %177) #5
  %179 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %13, i32 0, i32 0
  store ptr %178, ptr %179, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  %180 = load ptr, ptr %12, align 8, !tbaa !15
  %181 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %180) #5
  %182 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %14, i32 0, i32 0
  store ptr %181, ptr %182, align 8
  br label %183

183:                                              ; preds = %200, %164
  %184 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #5
  br i1 %184, label %186, label %185

185:                                              ; preds = %183
  store i32 5, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  br label %202

186:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %187 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #5
  %188 = load i32, ptr %187, align 4, !tbaa !5
  store i32 %188, ptr %15, align 4, !tbaa !5
  %189 = load i32, ptr %6, align 4, !tbaa !5
  %190 = sext i32 %189 to i64
  %191 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %190
  %192 = load i32, ptr %10, align 4, !tbaa !5
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds [128 x [128 x i32]], ptr %191, i64 0, i64 %193
  %195 = load i32, ptr %15, align 4, !tbaa !5
  %196 = sext i32 %195 to i64
  %197 = getelementptr inbounds [128 x i32], ptr %194, i64 0, i64 %196
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr %197, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  br label %200

200:                                              ; preds = %186
  %201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #5
  br label %183

202:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  %203 = load i32, ptr %11, align 4, !tbaa !5
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %204
  store ptr %205, ptr %16, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  %206 = load ptr, ptr %16, align 8, !tbaa !15
  %207 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #5
  %208 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %17, i32 0, i32 0
  store ptr %207, ptr %208, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %209 = load ptr, ptr %16, align 8, !tbaa !15
  %210 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %209) #5
  %211 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %18, i32 0, i32 0
  store ptr %210, ptr %211, align 8
  br label %212

212:                                              ; preds = %229, %202
  %213 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  br i1 %213, label %215, label %214

214:                                              ; preds = %212
  store i32 7, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  br label %231

215:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  %216 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %217 = load i32, ptr %216, align 4, !tbaa !5
  store i32 %217, ptr %19, align 4, !tbaa !5
  %218 = load i32, ptr %6, align 4, !tbaa !5
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %219
  %221 = load i32, ptr %10, align 4, !tbaa !5
  %222 = sext i32 %221 to i64
  %223 = getelementptr inbounds [128 x [128 x i32]], ptr %220, i64 0, i64 %222
  %224 = load i32, ptr %19, align 4, !tbaa !5
  %225 = sext i32 %224 to i64
  %226 = getelementptr inbounds [128 x i32], ptr %223, i64 0, i64 %225
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = add nsw i32 %227, 1
  store i32 %228, ptr %226, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  br label %229

229:                                              ; preds = %215
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  br label %212

231:                                              ; preds = %214
  %232 = load i32, ptr %6, align 4, !tbaa !5
  store i32 %232, ptr %3, align 4
  store i32 1, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #5
  br label %1096

233:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %234 = call i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %5)
  store i64 %234, ptr %21, align 4
  %235 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt4pairIiiEiSt4lessIS1_ESaIS0_IKS1_iEEEixEOS1_(ptr noundef nonnull align 8 dereferenceable(48) @maxpos, ptr noundef nonnull align 4 dereferenceable(8) %21)
  %236 = load i32, ptr %235, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  store i32 %236, ptr %20, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  %237 = load i32, ptr %20, align 4, !tbaa !5
  %238 = load i32, ptr %4, align 4, !tbaa !5
  %239 = sub nsw i32 %237, %238
  %240 = sub nsw i32 %239, 1
  store i32 %240, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  %241 = load i32, ptr %5, align 4, !tbaa !5
  %242 = load i32, ptr %20, align 4, !tbaa !5
  %243 = sub nsw i32 %241, %242
  %244 = sub nsw i32 %243, 1
  store i32 %244, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  %245 = load i32, ptr %22, align 4, !tbaa !5
  %246 = load i32, ptr %23, align 4, !tbaa !5
  %247 = icmp sge i32 %245, %246
  br i1 %247, label %248, label %255

248:                                              ; preds = %233
  %249 = load i32, ptr %4, align 4, !tbaa !5
  %250 = load i32, ptr %20, align 4, !tbaa !5
  %251 = call noundef i32 @_Z5solveii(i32 noundef %249, i32 noundef %250)
  store i32 %251, ptr %24, align 4, !tbaa !5
  %252 = load i32, ptr %20, align 4, !tbaa !5
  %253 = load i32, ptr %5, align 4, !tbaa !5
  %254 = call noundef i32 @_Z5solveii(i32 noundef %252, i32 noundef %253)
  store i32 %254, ptr %25, align 4, !tbaa !5
  br label %262

255:                                              ; preds = %233
  %256 = load i32, ptr %20, align 4, !tbaa !5
  %257 = load i32, ptr %5, align 4, !tbaa !5
  %258 = call noundef i32 @_Z5solveii(i32 noundef %256, i32 noundef %257)
  store i32 %258, ptr %25, align 4, !tbaa !5
  %259 = load i32, ptr %4, align 4, !tbaa !5
  %260 = load i32, ptr %20, align 4, !tbaa !5
  %261 = call noundef i32 @_Z5solveii(i32 noundef %259, i32 noundef %260)
  store i32 %261, ptr %24, align 4, !tbaa !5
  br label %262

262:                                              ; preds = %255, %248
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  %263 = load i32, ptr %20, align 4, !tbaa !5
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %264
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = sext i32 %266 to i64
  store i64 %267, ptr %26, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  %268 = load i64, ptr %26, align 8, !tbaa !17
  %269 = ashr i64 %268, 7
  %270 = trunc i64 %269 to i32
  store i32 %270, ptr %27, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  %271 = load i64, ptr %26, align 8, !tbaa !17
  %272 = and i64 %271, 127
  %273 = trunc i64 %272 to i32
  store i32 %273, ptr %28, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  store i64 0, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  %274 = load i32, ptr %27, align 4, !tbaa !5
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %275
  store ptr %276, ptr %31, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %277 = load ptr, ptr %31, align 8, !tbaa !15
  %278 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %277) #5
  %279 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %32, i32 0, i32 0
  store ptr %278, ptr %279, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %280 = load ptr, ptr %31, align 8, !tbaa !15
  %281 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %280) #5
  %282 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %33, i32 0, i32 0
  store ptr %281, ptr %282, align 8
  br label %283

283:                                              ; preds = %302, %262
  %284 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #5
  br i1 %284, label %286, label %285

285:                                              ; preds = %283
  store i32 9, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  br label %304

286:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #5
  %287 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #5
  %288 = load i32, ptr %287, align 4, !tbaa !5
  store i32 %288, ptr %34, align 4, !tbaa !5
  %289 = load i32, ptr %24, align 4, !tbaa !5
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %290
  %292 = load i32, ptr %34, align 4, !tbaa !5
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds [128 x [128 x i32]], ptr %291, i64 0, i64 %293
  %295 = load i32, ptr %28, align 4, !tbaa !5
  %296 = sext i32 %295 to i64
  %297 = getelementptr inbounds [128 x i32], ptr %294, i64 0, i64 %296
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = sext i32 %298 to i64
  %300 = load i64, ptr %29, align 8, !tbaa !17
  %301 = add nsw i64 %300, %299
  store i64 %301, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  br label %302

302:                                              ; preds = %286
  %303 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #5
  br label %283

304:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  %305 = load i32, ptr %27, align 4, !tbaa !5
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %306
  store ptr %307, ptr %35, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  %308 = load ptr, ptr %35, align 8, !tbaa !15
  %309 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %308) #5
  %310 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %36, i32 0, i32 0
  store ptr %309, ptr %310, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  %311 = load ptr, ptr %35, align 8, !tbaa !15
  %312 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %311) #5
  %313 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %37, i32 0, i32 0
  store ptr %312, ptr %313, align 8
  br label %314

314:                                              ; preds = %333, %304
  %315 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #5
  br i1 %315, label %317, label %316

316:                                              ; preds = %314
  store i32 11, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  br label %335

317:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  %318 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #5
  %319 = load i32, ptr %318, align 4, !tbaa !5
  store i32 %319, ptr %38, align 4, !tbaa !5
  %320 = load i32, ptr %24, align 4, !tbaa !5
  %321 = sext i32 %320 to i64
  %322 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %321
  %323 = load i32, ptr %38, align 4, !tbaa !5
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds [128 x [128 x i32]], ptr %322, i64 0, i64 %324
  %326 = load i32, ptr %28, align 4, !tbaa !5
  %327 = sext i32 %326 to i64
  %328 = getelementptr inbounds [128 x i32], ptr %325, i64 0, i64 %327
  %329 = load i32, ptr %328, align 4, !tbaa !5
  %330 = sext i32 %329 to i64
  %331 = load i64, ptr %29, align 8, !tbaa !17
  %332 = add nsw i64 %331, %330
  store i64 %332, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  br label %333

333:                                              ; preds = %317
  %334 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #5
  br label %314

335:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  %336 = load i64, ptr %26, align 8, !tbaa !17
  %337 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %336
  %338 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %337) #5
  %339 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %41, i32 0, i32 0
  store ptr %338, ptr %339, align 8
  %340 = load i64, ptr %26, align 8, !tbaa !17
  %341 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %340
  %342 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %341) #5
  %343 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %42, i32 0, i32 0
  store ptr %342, ptr %343, align 8
  %344 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %41, i32 0, i32 0
  %345 = load ptr, ptr %344, align 8
  %346 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %42, i32 0, i32 0
  %347 = load ptr, ptr %346, align 8
  %348 = call ptr @_ZSt11lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %345, ptr %347, ptr noundef nonnull align 4 dereferenceable(4) %20)
  %349 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %40, i32 0, i32 0
  store ptr %348, ptr %349, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  %350 = load i64, ptr %26, align 8, !tbaa !17
  %351 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %350
  %352 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %351) #5
  %353 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %44, i32 0, i32 0
  store ptr %352, ptr %353, align 8
  %354 = load i64, ptr %26, align 8, !tbaa !17
  %355 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %354
  %356 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %355) #5
  %357 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %45, i32 0, i32 0
  store ptr %356, ptr %357, align 8
  %358 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %44, i32 0, i32 0
  %359 = load ptr, ptr %358, align 8
  %360 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %45, i32 0, i32 0
  %361 = load ptr, ptr %360, align 8
  %362 = call ptr @_ZSt11upper_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %359, ptr %361, ptr noundef nonnull align 4 dereferenceable(4) %4)
  %363 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %43, i32 0, i32 0
  store ptr %362, ptr %363, align 8
  %364 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %43) #5
  %365 = trunc i64 %364 to i32
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  store i32 %365, ptr %39, align 4, !tbaa !5
  %366 = load i32, ptr %39, align 4, !tbaa !5
  %367 = sext i32 %366 to i64
  %368 = load i64, ptr %29, align 8, !tbaa !17
  %369 = sub nsw i64 %368, %367
  store i64 %369, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  %370 = load i32, ptr %27, align 4, !tbaa !5
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %371
  store ptr %372, ptr %46, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  %373 = load ptr, ptr %46, align 8, !tbaa !15
  %374 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %373) #5
  %375 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %47, i32 0, i32 0
  store ptr %374, ptr %375, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  %376 = load ptr, ptr %46, align 8, !tbaa !15
  %377 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %376) #5
  %378 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %48, i32 0, i32 0
  store ptr %377, ptr %378, align 8
  br label %379

379:                                              ; preds = %398, %335
  %380 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #5
  br i1 %380, label %382, label %381

381:                                              ; preds = %379
  store i32 13, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  br label %400

382:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #5
  %383 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #5
  %384 = load i32, ptr %383, align 4, !tbaa !5
  store i32 %384, ptr %49, align 4, !tbaa !5
  %385 = load i32, ptr %25, align 4, !tbaa !5
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %386
  %388 = load i32, ptr %49, align 4, !tbaa !5
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds [128 x [128 x i32]], ptr %387, i64 0, i64 %389
  %391 = load i32, ptr %28, align 4, !tbaa !5
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds [128 x i32], ptr %390, i64 0, i64 %392
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = sext i32 %394 to i64
  %396 = load i64, ptr %29, align 8, !tbaa !17
  %397 = add nsw i64 %396, %395
  store i64 %397, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  br label %398

398:                                              ; preds = %382
  %399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #5
  br label %379

400:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  %401 = load i32, ptr %27, align 4, !tbaa !5
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %402
  store ptr %403, ptr %50, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  %404 = load ptr, ptr %50, align 8, !tbaa !15
  %405 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %404) #5
  %406 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %51, i32 0, i32 0
  store ptr %405, ptr %406, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  %407 = load ptr, ptr %50, align 8, !tbaa !15
  %408 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %407) #5
  %409 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %52, i32 0, i32 0
  store ptr %408, ptr %409, align 8
  br label %410

410:                                              ; preds = %429, %400
  %411 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(8) %52) #5
  br i1 %411, label %413, label %412

412:                                              ; preds = %410
  store i32 15, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  br label %431

413:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #5
  %414 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #5
  %415 = load i32, ptr %414, align 4, !tbaa !5
  store i32 %415, ptr %53, align 4, !tbaa !5
  %416 = load i32, ptr %25, align 4, !tbaa !5
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %417
  %419 = load i32, ptr %53, align 4, !tbaa !5
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds [128 x [128 x i32]], ptr %418, i64 0, i64 %420
  %422 = load i32, ptr %28, align 4, !tbaa !5
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds [128 x i32], ptr %421, i64 0, i64 %423
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = sext i32 %425 to i64
  %427 = load i64, ptr %29, align 8, !tbaa !17
  %428 = add nsw i64 %427, %426
  store i64 %428, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  br label %429

429:                                              ; preds = %413
  %430 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #5
  br label %410

431:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #5
  %432 = load i64, ptr %26, align 8, !tbaa !17
  %433 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %432
  %434 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %433) #5
  %435 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %55, i32 0, i32 0
  store ptr %434, ptr %435, align 8
  %436 = load i64, ptr %26, align 8, !tbaa !17
  %437 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %436
  %438 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %437) #5
  %439 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %56, i32 0, i32 0
  store ptr %438, ptr %439, align 8
  %440 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %55, i32 0, i32 0
  %441 = load ptr, ptr %440, align 8
  %442 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %56, i32 0, i32 0
  %443 = load ptr, ptr %442, align 8
  %444 = call ptr @_ZSt11lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %441, ptr %443, ptr noundef nonnull align 4 dereferenceable(4) %5)
  %445 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %54, i32 0, i32 0
  store ptr %444, ptr %445, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #5
  %446 = load i64, ptr %26, align 8, !tbaa !17
  %447 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %446
  %448 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %447) #5
  %449 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %58, i32 0, i32 0
  store ptr %448, ptr %449, align 8
  %450 = load i64, ptr %26, align 8, !tbaa !17
  %451 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %450
  %452 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %451) #5
  %453 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %59, i32 0, i32 0
  store ptr %452, ptr %453, align 8
  %454 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %58, i32 0, i32 0
  %455 = load ptr, ptr %454, align 8
  %456 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %59, i32 0, i32 0
  %457 = load ptr, ptr %456, align 8
  %458 = call ptr @_ZSt11upper_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %455, ptr %457, ptr noundef nonnull align 4 dereferenceable(4) %20)
  %459 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %57, i32 0, i32 0
  store ptr %458, ptr %459, align 8
  %460 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %57) #5
  %461 = trunc i64 %460 to i32
  store i32 %461, ptr %39, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  %462 = load i32, ptr %39, align 4, !tbaa !5
  %463 = sext i32 %462 to i64
  %464 = load i64, ptr %29, align 8, !tbaa !17
  %465 = sub nsw i64 %464, %463
  store i64 %465, ptr %29, align 8, !tbaa !17
  %466 = load i32, ptr %22, align 4, !tbaa !5
  %467 = load i32, ptr %23, align 4, !tbaa !5
  %468 = icmp sle i32 %466, %467
  br i1 %468, label %469, label %750

469:                                              ; preds = %431
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #5
  %470 = load i32, ptr %4, align 4, !tbaa !5
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr %60, align 4, !tbaa !5
  br label %472

472:                                              ; preds = %624, %469
  %473 = load i32, ptr %60, align 4, !tbaa !5
  %474 = load i32, ptr %20, align 4, !tbaa !5
  %475 = icmp slt i32 %473, %474
  br i1 %475, label %477, label %476

476:                                              ; preds = %472
  store i32 17, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  br label %627

477:                                              ; preds = %472
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #5
  %478 = load i32, ptr %60, align 4, !tbaa !5
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %479
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = ashr i32 %481, 7
  store i32 %482, ptr %61, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #5
  %483 = load i32, ptr %60, align 4, !tbaa !5
  %484 = sext i32 %483 to i64
  %485 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %484
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = and i32 %486, 127
  store i32 %487, ptr %62, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #5
  %488 = load i32, ptr %61, align 4, !tbaa !5
  %489 = sext i32 %488 to i64
  %490 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %489
  store ptr %490, ptr %63, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  %491 = load ptr, ptr %63, align 8, !tbaa !15
  %492 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %491) #5
  %493 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %64, i32 0, i32 0
  store ptr %492, ptr %493, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  %494 = load ptr, ptr %63, align 8, !tbaa !15
  %495 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %494) #5
  %496 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %65, i32 0, i32 0
  store ptr %495, ptr %496, align 8
  br label %497

497:                                              ; preds = %516, %477
  %498 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %65) #5
  br i1 %498, label %500, label %499

499:                                              ; preds = %497
  store i32 20, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #5
  br label %518

500:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #5
  %501 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #5
  %502 = load i32, ptr %501, align 4, !tbaa !5
  store i32 %502, ptr %66, align 4, !tbaa !5
  %503 = load i32, ptr %25, align 4, !tbaa !5
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %504
  %506 = load i32, ptr %66, align 4, !tbaa !5
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds [128 x [128 x i32]], ptr %505, i64 0, i64 %507
  %509 = load i32, ptr %62, align 4, !tbaa !5
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds [128 x i32], ptr %508, i64 0, i64 %510
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = sext i32 %512 to i64
  %514 = load i64, ptr %29, align 8, !tbaa !17
  %515 = add nsw i64 %514, %513
  store i64 %515, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  br label %516

516:                                              ; preds = %500
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #5
  br label %497

518:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  %519 = load i32, ptr %61, align 4, !tbaa !5
  %520 = sext i32 %519 to i64
  %521 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %520
  store ptr %521, ptr %67, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  %522 = load ptr, ptr %67, align 8, !tbaa !15
  %523 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %522) #5
  %524 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %68, i32 0, i32 0
  store ptr %523, ptr %524, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #5
  %525 = load ptr, ptr %67, align 8, !tbaa !15
  %526 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %525) #5
  %527 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %69, i32 0, i32 0
  store ptr %526, ptr %527, align 8
  br label %528

528:                                              ; preds = %547, %518
  %529 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull align 8 dereferenceable(8) %69) #5
  br i1 %529, label %531, label %530

530:                                              ; preds = %528
  store i32 22, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  br label %549

531:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #5
  %532 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #5
  %533 = load i32, ptr %532, align 4, !tbaa !5
  store i32 %533, ptr %70, align 4, !tbaa !5
  %534 = load i32, ptr %25, align 4, !tbaa !5
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %535
  %537 = load i32, ptr %70, align 4, !tbaa !5
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds [128 x [128 x i32]], ptr %536, i64 0, i64 %538
  %540 = load i32, ptr %62, align 4, !tbaa !5
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds [128 x i32], ptr %539, i64 0, i64 %541
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = sext i32 %543 to i64
  %545 = load i64, ptr %29, align 8, !tbaa !17
  %546 = add nsw i64 %545, %544
  store i64 %546, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  br label %547

547:                                              ; preds = %531
  %548 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %68) #5
  br label %528

549:                                              ; preds = %530
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #5
  store i32 0, ptr %71, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #5
  %550 = load i32, ptr %60, align 4, !tbaa !5
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %551
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %554
  %556 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %555) #5
  %557 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %73, i32 0, i32 0
  store ptr %556, ptr %557, align 8
  %558 = load i32, ptr %60, align 4, !tbaa !5
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %559
  %561 = load i32, ptr %560, align 4, !tbaa !5
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %562
  %564 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %563) #5
  %565 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %74, i32 0, i32 0
  store ptr %564, ptr %565, align 8
  %566 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %73, i32 0, i32 0
  %567 = load ptr, ptr %566, align 8
  %568 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %74, i32 0, i32 0
  %569 = load ptr, ptr %568, align 8
  %570 = call ptr @_ZSt11lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %567, ptr %569, ptr noundef nonnull align 4 dereferenceable(4) %5)
  %571 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %72, i32 0, i32 0
  store ptr %570, ptr %571, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #5
  %572 = load i32, ptr %60, align 4, !tbaa !5
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %573
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %576
  %578 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %577) #5
  %579 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %75, i32 0, i32 0
  store ptr %578, ptr %579, align 8
  %580 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %75) #5
  %581 = load i32, ptr %71, align 4, !tbaa !5
  %582 = sext i32 %581 to i64
  %583 = add nsw i64 %582, %580
  %584 = trunc i64 %583 to i32
  store i32 %584, ptr %71, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #5
  %585 = load i32, ptr %60, align 4, !tbaa !5
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %586
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = sext i32 %588 to i64
  %590 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %589
  %591 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %590) #5
  %592 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %77, i32 0, i32 0
  store ptr %591, ptr %592, align 8
  %593 = load i32, ptr %60, align 4, !tbaa !5
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %594
  %596 = load i32, ptr %595, align 4, !tbaa !5
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %597
  %599 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %598) #5
  %600 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %78, i32 0, i32 0
  store ptr %599, ptr %600, align 8
  %601 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %77, i32 0, i32 0
  %602 = load ptr, ptr %601, align 8
  %603 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %78, i32 0, i32 0
  %604 = load ptr, ptr %603, align 8
  %605 = call ptr @_ZSt11upper_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %602, ptr %604, ptr noundef nonnull align 4 dereferenceable(4) %20)
  %606 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %76, i32 0, i32 0
  store ptr %605, ptr %606, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  %607 = load i32, ptr %60, align 4, !tbaa !5
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %608
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %611
  %613 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %612) #5
  %614 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %79, i32 0, i32 0
  store ptr %613, ptr %614, align 8
  %615 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %79) #5
  %616 = load i32, ptr %71, align 4, !tbaa !5
  %617 = sext i32 %616 to i64
  %618 = sub nsw i64 %617, %615
  %619 = trunc i64 %618 to i32
  store i32 %619, ptr %71, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #5
  %620 = load i32, ptr %71, align 4, !tbaa !5
  %621 = sext i32 %620 to i64
  %622 = load i64, ptr %29, align 8, !tbaa !17
  %623 = sub nsw i64 %622, %621
  store i64 %623, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  br label %624

624:                                              ; preds = %549
  %625 = load i32, ptr %60, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr %60, align 4, !tbaa !5
  br label %472, !llvm.loop !19

627:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #5
  %628 = load i32, ptr %4, align 4, !tbaa !5
  %629 = add nsw i32 %628, 1
  store i32 %629, ptr %80, align 4, !tbaa !5
  br label %630

630:                                              ; preds = %742, %627
  %631 = load i32, ptr %80, align 4, !tbaa !5
  %632 = load i32, ptr %20, align 4, !tbaa !5
  %633 = icmp slt i32 %631, %632
  br i1 %633, label %635, label %634

634:                                              ; preds = %630
  store i32 24, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  br label %745

635:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #5
  %636 = load i32, ptr %80, align 4, !tbaa !5
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %637
  %639 = load i32, ptr %638, align 4, !tbaa !5
  %640 = ashr i32 %639, 7
  store i32 %640, ptr %81, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #5
  %641 = load i32, ptr %80, align 4, !tbaa !5
  %642 = sext i32 %641 to i64
  %643 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %642
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = and i32 %644, 127
  store i32 %645, ptr %82, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  %646 = load i32, ptr %82, align 4, !tbaa !5
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %647
  store ptr %648, ptr %83, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  %649 = load ptr, ptr %83, align 8, !tbaa !15
  %650 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %649) #5
  %651 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %84, i32 0, i32 0
  store ptr %650, ptr %651, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #5
  %652 = load ptr, ptr %83, align 8, !tbaa !15
  %653 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %652) #5
  %654 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %85, i32 0, i32 0
  store ptr %653, ptr %654, align 8
  br label %655

655:                                              ; preds = %691, %635
  %656 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %85) #5
  br i1 %656, label %658, label %657

657:                                              ; preds = %655
  store i32 27, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  br label %693

658:                                              ; preds = %655
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #5
  %659 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %84) #5
  %660 = load i32, ptr %659, align 4, !tbaa !5
  store i32 %660, ptr %86, align 4, !tbaa !5
  %661 = load i32, ptr %24, align 4, !tbaa !5
  %662 = sext i32 %661 to i64
  %663 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %662
  %664 = load i32, ptr %81, align 4, !tbaa !5
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds [128 x [128 x i32]], ptr %663, i64 0, i64 %665
  %667 = load i32, ptr %86, align 4, !tbaa !5
  %668 = sext i32 %667 to i64
  %669 = getelementptr inbounds [128 x i32], ptr %666, i64 0, i64 %668
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = load i32, ptr %25, align 4, !tbaa !5
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %672
  %674 = load i32, ptr %81, align 4, !tbaa !5
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds [128 x [128 x i32]], ptr %673, i64 0, i64 %675
  %677 = load i32, ptr %86, align 4, !tbaa !5
  %678 = sext i32 %677 to i64
  %679 = getelementptr inbounds [128 x i32], ptr %676, i64 0, i64 %678
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = add nsw i32 %680, %670
  store i32 %681, ptr %679, align 4, !tbaa !5
  %682 = load i32, ptr %24, align 4, !tbaa !5
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %683
  %685 = load i32, ptr %81, align 4, !tbaa !5
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds [128 x [128 x i32]], ptr %684, i64 0, i64 %686
  %688 = load i32, ptr %86, align 4, !tbaa !5
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds [128 x i32], ptr %687, i64 0, i64 %689
  store i32 0, ptr %690, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  br label %691

691:                                              ; preds = %658
  %692 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %84) #5
  br label %655

693:                                              ; preds = %657
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #5
  %694 = load i32, ptr %82, align 4, !tbaa !5
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %695
  store ptr %696, ptr %87, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #5
  %697 = load ptr, ptr %87, align 8, !tbaa !15
  %698 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %697) #5
  %699 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %88, i32 0, i32 0
  store ptr %698, ptr %699, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #5
  %700 = load ptr, ptr %87, align 8, !tbaa !15
  %701 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %700) #5
  %702 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %89, i32 0, i32 0
  store ptr %701, ptr %702, align 8
  br label %703

703:                                              ; preds = %739, %693
  %704 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %89) #5
  br i1 %704, label %706, label %705

705:                                              ; preds = %703
  store i32 29, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  br label %741

706:                                              ; preds = %703
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #5
  %707 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %88) #5
  %708 = load i32, ptr %707, align 4, !tbaa !5
  store i32 %708, ptr %90, align 4, !tbaa !5
  %709 = load i32, ptr %24, align 4, !tbaa !5
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %710
  %712 = load i32, ptr %81, align 4, !tbaa !5
  %713 = sext i32 %712 to i64
  %714 = getelementptr inbounds [128 x [128 x i32]], ptr %711, i64 0, i64 %713
  %715 = load i32, ptr %90, align 4, !tbaa !5
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds [128 x i32], ptr %714, i64 0, i64 %716
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = load i32, ptr %25, align 4, !tbaa !5
  %720 = sext i32 %719 to i64
  %721 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %720
  %722 = load i32, ptr %81, align 4, !tbaa !5
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds [128 x [128 x i32]], ptr %721, i64 0, i64 %723
  %725 = load i32, ptr %90, align 4, !tbaa !5
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds [128 x i32], ptr %724, i64 0, i64 %726
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = add nsw i32 %728, %718
  store i32 %729, ptr %727, align 4, !tbaa !5
  %730 = load i32, ptr %24, align 4, !tbaa !5
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %731
  %733 = load i32, ptr %81, align 4, !tbaa !5
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds [128 x [128 x i32]], ptr %732, i64 0, i64 %734
  %736 = load i32, ptr %90, align 4, !tbaa !5
  %737 = sext i32 %736 to i64
  %738 = getelementptr inbounds [128 x i32], ptr %735, i64 0, i64 %737
  store i32 0, ptr %738, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #5
  br label %739

739:                                              ; preds = %706
  %740 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %88) #5
  br label %703

741:                                              ; preds = %705
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  br label %742

742:                                              ; preds = %741
  %743 = load i32, ptr %80, align 4, !tbaa !5
  %744 = add nsw i32 %743, 1
  store i32 %744, ptr %80, align 4, !tbaa !5
  br label %630, !llvm.loop !20

745:                                              ; preds = %634
  %746 = load i32, ptr %24, align 4, !tbaa !5
  %747 = sext i32 %746 to i64
  %748 = getelementptr inbounds [20 x i8], ptr @isFree, i64 0, i64 %747
  store i8 0, ptr %748, align 1, !tbaa !9
  %749 = load i32, ptr %25, align 4, !tbaa !5
  store i32 %749, ptr %30, align 4, !tbaa !5
  br label %1031

750:                                              ; preds = %431
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #5
  %751 = load i32, ptr %20, align 4, !tbaa !5
  %752 = add nsw i32 %751, 1
  store i32 %752, ptr %91, align 4, !tbaa !5
  br label %753

753:                                              ; preds = %905, %750
  %754 = load i32, ptr %91, align 4, !tbaa !5
  %755 = load i32, ptr %5, align 4, !tbaa !5
  %756 = icmp slt i32 %754, %755
  br i1 %756, label %758, label %757

757:                                              ; preds = %753
  store i32 31, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  br label %908

758:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #5
  %759 = load i32, ptr %91, align 4, !tbaa !5
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %760
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = ashr i32 %762, 7
  store i32 %763, ptr %92, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #5
  %764 = load i32, ptr %91, align 4, !tbaa !5
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %765
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = and i32 %767, 127
  store i32 %768, ptr %93, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #5
  %769 = load i32, ptr %92, align 4, !tbaa !5
  %770 = sext i32 %769 to i64
  %771 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %770
  store ptr %771, ptr %94, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #5
  %772 = load ptr, ptr %94, align 8, !tbaa !15
  %773 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %772) #5
  %774 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %95, i32 0, i32 0
  store ptr %773, ptr %774, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #5
  %775 = load ptr, ptr %94, align 8, !tbaa !15
  %776 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %775) #5
  %777 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %96, i32 0, i32 0
  store ptr %776, ptr %777, align 8
  br label %778

778:                                              ; preds = %797, %758
  %779 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %96) #5
  br i1 %779, label %781, label %780

780:                                              ; preds = %778
  store i32 34, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #5
  br label %799

781:                                              ; preds = %778
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #5
  %782 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #5
  %783 = load i32, ptr %782, align 4, !tbaa !5
  store i32 %783, ptr %97, align 4, !tbaa !5
  %784 = load i32, ptr %24, align 4, !tbaa !5
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %785
  %787 = load i32, ptr %97, align 4, !tbaa !5
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds [128 x [128 x i32]], ptr %786, i64 0, i64 %788
  %790 = load i32, ptr %93, align 4, !tbaa !5
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds [128 x i32], ptr %789, i64 0, i64 %791
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = sext i32 %793 to i64
  %795 = load i64, ptr %29, align 8, !tbaa !17
  %796 = add nsw i64 %795, %794
  store i64 %796, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #5
  br label %797

797:                                              ; preds = %781
  %798 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #5
  br label %778

799:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #5
  %800 = load i32, ptr %92, align 4, !tbaa !5
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %801
  store ptr %802, ptr %98, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #5
  %803 = load ptr, ptr %98, align 8, !tbaa !15
  %804 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %803) #5
  %805 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %99, i32 0, i32 0
  store ptr %804, ptr %805, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #5
  %806 = load ptr, ptr %98, align 8, !tbaa !15
  %807 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %806) #5
  %808 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %100, i32 0, i32 0
  store ptr %807, ptr %808, align 8
  br label %809

809:                                              ; preds = %828, %799
  %810 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %100) #5
  br i1 %810, label %812, label %811

811:                                              ; preds = %809
  store i32 36, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  br label %830

812:                                              ; preds = %809
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #5
  %813 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #5
  %814 = load i32, ptr %813, align 4, !tbaa !5
  store i32 %814, ptr %101, align 4, !tbaa !5
  %815 = load i32, ptr %24, align 4, !tbaa !5
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %816
  %818 = load i32, ptr %101, align 4, !tbaa !5
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds [128 x [128 x i32]], ptr %817, i64 0, i64 %819
  %821 = load i32, ptr %93, align 4, !tbaa !5
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds [128 x i32], ptr %820, i64 0, i64 %822
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = sext i32 %824 to i64
  %826 = load i64, ptr %29, align 8, !tbaa !17
  %827 = add nsw i64 %826, %825
  store i64 %827, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #5
  br label %828

828:                                              ; preds = %812
  %829 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #5
  br label %809

830:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #5
  store i32 0, ptr %102, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #5
  %831 = load i32, ptr %91, align 4, !tbaa !5
  %832 = sext i32 %831 to i64
  %833 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %832
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %835
  %837 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %836) #5
  %838 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %104, i32 0, i32 0
  store ptr %837, ptr %838, align 8
  %839 = load i32, ptr %91, align 4, !tbaa !5
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %840
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %843
  %845 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %844) #5
  %846 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %105, i32 0, i32 0
  store ptr %845, ptr %846, align 8
  %847 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %104, i32 0, i32 0
  %848 = load ptr, ptr %847, align 8
  %849 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %105, i32 0, i32 0
  %850 = load ptr, ptr %849, align 8
  %851 = call ptr @_ZSt11lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %848, ptr %850, ptr noundef nonnull align 4 dereferenceable(4) %20)
  %852 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %103, i32 0, i32 0
  store ptr %851, ptr %852, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #5
  %853 = load i32, ptr %91, align 4, !tbaa !5
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %854
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = sext i32 %856 to i64
  %858 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %857
  %859 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %858) #5
  %860 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %106, i32 0, i32 0
  store ptr %859, ptr %860, align 8
  %861 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull align 8 dereferenceable(8) %106) #5
  %862 = load i32, ptr %102, align 4, !tbaa !5
  %863 = sext i32 %862 to i64
  %864 = add nsw i64 %863, %861
  %865 = trunc i64 %864 to i32
  store i32 %865, ptr %102, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #5
  %866 = load i32, ptr %91, align 4, !tbaa !5
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %867
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = sext i32 %869 to i64
  %871 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %870
  %872 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %871) #5
  %873 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %108, i32 0, i32 0
  store ptr %872, ptr %873, align 8
  %874 = load i32, ptr %91, align 4, !tbaa !5
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %875
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = sext i32 %877 to i64
  %879 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %878
  %880 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %879) #5
  %881 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %109, i32 0, i32 0
  store ptr %880, ptr %881, align 8
  %882 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %108, i32 0, i32 0
  %883 = load ptr, ptr %882, align 8
  %884 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %109, i32 0, i32 0
  %885 = load ptr, ptr %884, align 8
  %886 = call ptr @_ZSt11upper_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %883, ptr %885, ptr noundef nonnull align 4 dereferenceable(4) %4)
  %887 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %107, i32 0, i32 0
  store ptr %886, ptr %887, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #5
  %888 = load i32, ptr %91, align 4, !tbaa !5
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %889
  %891 = load i32, ptr %890, align 4, !tbaa !5
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %892
  %894 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %893) #5
  %895 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %110, i32 0, i32 0
  store ptr %894, ptr %895, align 8
  %896 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull align 8 dereferenceable(8) %110) #5
  %897 = load i32, ptr %102, align 4, !tbaa !5
  %898 = sext i32 %897 to i64
  %899 = sub nsw i64 %898, %896
  %900 = trunc i64 %899 to i32
  store i32 %900, ptr %102, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #5
  %901 = load i32, ptr %102, align 4, !tbaa !5
  %902 = sext i32 %901 to i64
  %903 = load i64, ptr %29, align 8, !tbaa !17
  %904 = sub nsw i64 %903, %902
  store i64 %904, ptr %29, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #5
  br label %905

905:                                              ; preds = %830
  %906 = load i32, ptr %91, align 4, !tbaa !5
  %907 = add nsw i32 %906, 1
  store i32 %907, ptr %91, align 4, !tbaa !5
  br label %753, !llvm.loop !21

908:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #5
  %909 = load i32, ptr %20, align 4, !tbaa !5
  %910 = add nsw i32 %909, 1
  store i32 %910, ptr %111, align 4, !tbaa !5
  br label %911

911:                                              ; preds = %1023, %908
  %912 = load i32, ptr %111, align 4, !tbaa !5
  %913 = load i32, ptr %5, align 4, !tbaa !5
  %914 = icmp slt i32 %912, %913
  br i1 %914, label %916, label %915

915:                                              ; preds = %911
  store i32 38, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #5
  br label %1026

916:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #5
  %917 = load i32, ptr %111, align 4, !tbaa !5
  %918 = sext i32 %917 to i64
  %919 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %918
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = ashr i32 %920, 7
  store i32 %921, ptr %112, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #5
  %922 = load i32, ptr %111, align 4, !tbaa !5
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %923
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = and i32 %925, 127
  store i32 %926, ptr %113, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #5
  %927 = load i32, ptr %113, align 4, !tbaa !5
  %928 = sext i32 %927 to i64
  %929 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %928
  store ptr %929, ptr %114, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #5
  %930 = load ptr, ptr %114, align 8, !tbaa !15
  %931 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %930) #5
  %932 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %115, i32 0, i32 0
  store ptr %931, ptr %932, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #5
  %933 = load ptr, ptr %114, align 8, !tbaa !15
  %934 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %933) #5
  %935 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %116, i32 0, i32 0
  store ptr %934, ptr %935, align 8
  br label %936

936:                                              ; preds = %972, %916
  %937 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %116) #5
  br i1 %937, label %939, label %938

938:                                              ; preds = %936
  store i32 41, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #5
  br label %974

939:                                              ; preds = %936
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #5
  %940 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %115) #5
  %941 = load i32, ptr %940, align 4, !tbaa !5
  store i32 %941, ptr %117, align 4, !tbaa !5
  %942 = load i32, ptr %25, align 4, !tbaa !5
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %943
  %945 = load i32, ptr %112, align 4, !tbaa !5
  %946 = sext i32 %945 to i64
  %947 = getelementptr inbounds [128 x [128 x i32]], ptr %944, i64 0, i64 %946
  %948 = load i32, ptr %117, align 4, !tbaa !5
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds [128 x i32], ptr %947, i64 0, i64 %949
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = load i32, ptr %24, align 4, !tbaa !5
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %953
  %955 = load i32, ptr %112, align 4, !tbaa !5
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds [128 x [128 x i32]], ptr %954, i64 0, i64 %956
  %958 = load i32, ptr %117, align 4, !tbaa !5
  %959 = sext i32 %958 to i64
  %960 = getelementptr inbounds [128 x i32], ptr %957, i64 0, i64 %959
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = add nsw i32 %961, %951
  store i32 %962, ptr %960, align 4, !tbaa !5
  %963 = load i32, ptr %25, align 4, !tbaa !5
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %964
  %966 = load i32, ptr %112, align 4, !tbaa !5
  %967 = sext i32 %966 to i64
  %968 = getelementptr inbounds [128 x [128 x i32]], ptr %965, i64 0, i64 %967
  %969 = load i32, ptr %117, align 4, !tbaa !5
  %970 = sext i32 %969 to i64
  %971 = getelementptr inbounds [128 x i32], ptr %968, i64 0, i64 %970
  store i32 0, ptr %971, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #5
  br label %972

972:                                              ; preds = %939
  %973 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %115) #5
  br label %936

974:                                              ; preds = %938
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #5
  %975 = load i32, ptr %113, align 4, !tbaa !5
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %976
  store ptr %977, ptr %118, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #5
  %978 = load ptr, ptr %118, align 8, !tbaa !15
  %979 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %978) #5
  %980 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %119, i32 0, i32 0
  store ptr %979, ptr %980, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #5
  %981 = load ptr, ptr %118, align 8, !tbaa !15
  %982 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %981) #5
  %983 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %120, i32 0, i32 0
  store ptr %982, ptr %983, align 8
  br label %984

984:                                              ; preds = %1020, %974
  %985 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %120) #5
  br i1 %985, label %987, label %986

986:                                              ; preds = %984
  store i32 43, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #5
  br label %1022

987:                                              ; preds = %984
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #5
  %988 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %119) #5
  %989 = load i32, ptr %988, align 4, !tbaa !5
  store i32 %989, ptr %121, align 4, !tbaa !5
  %990 = load i32, ptr %25, align 4, !tbaa !5
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %991
  %993 = load i32, ptr %112, align 4, !tbaa !5
  %994 = sext i32 %993 to i64
  %995 = getelementptr inbounds [128 x [128 x i32]], ptr %992, i64 0, i64 %994
  %996 = load i32, ptr %121, align 4, !tbaa !5
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds [128 x i32], ptr %995, i64 0, i64 %997
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = load i32, ptr %24, align 4, !tbaa !5
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %1001
  %1003 = load i32, ptr %112, align 4, !tbaa !5
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds [128 x [128 x i32]], ptr %1002, i64 0, i64 %1004
  %1006 = load i32, ptr %121, align 4, !tbaa !5
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds [128 x i32], ptr %1005, i64 0, i64 %1007
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = add nsw i32 %1009, %999
  store i32 %1010, ptr %1008, align 4, !tbaa !5
  %1011 = load i32, ptr %25, align 4, !tbaa !5
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %1012
  %1014 = load i32, ptr %112, align 4, !tbaa !5
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds [128 x [128 x i32]], ptr %1013, i64 0, i64 %1015
  %1017 = load i32, ptr %121, align 4, !tbaa !5
  %1018 = sext i32 %1017 to i64
  %1019 = getelementptr inbounds [128 x i32], ptr %1016, i64 0, i64 %1018
  store i32 0, ptr %1019, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #5
  br label %1020

1020:                                             ; preds = %987
  %1021 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %119) #5
  br label %984

1022:                                             ; preds = %986
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #5
  br label %1023

1023:                                             ; preds = %1022
  %1024 = load i32, ptr %111, align 4, !tbaa !5
  %1025 = add nsw i32 %1024, 1
  store i32 %1025, ptr %111, align 4, !tbaa !5
  br label %911, !llvm.loop !22

1026:                                             ; preds = %915
  %1027 = load i32, ptr %25, align 4, !tbaa !5
  %1028 = sext i32 %1027 to i64
  %1029 = getelementptr inbounds [20 x i8], ptr @isFree, i64 0, i64 %1028
  store i8 0, ptr %1029, align 1, !tbaa !9
  %1030 = load i32, ptr %24, align 4, !tbaa !5
  store i32 %1030, ptr %30, align 4, !tbaa !5
  br label %1031

1031:                                             ; preds = %1026, %745
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #5
  %1032 = load i32, ptr %28, align 4, !tbaa !5
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %1033
  store ptr %1034, ptr %122, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #5
  %1035 = load ptr, ptr %122, align 8, !tbaa !15
  %1036 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1035) #5
  %1037 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %123, i32 0, i32 0
  store ptr %1036, ptr %1037, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #5
  %1038 = load ptr, ptr %122, align 8, !tbaa !15
  %1039 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1038) #5
  %1040 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %124, i32 0, i32 0
  store ptr %1039, ptr %1040, align 8
  br label %1041

1041:                                             ; preds = %1058, %1031
  %1042 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %124) #5
  br i1 %1042, label %1044, label %1043

1043:                                             ; preds = %1041
  store i32 45, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #5
  br label %1060

1044:                                             ; preds = %1041
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #5
  %1045 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #5
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  store i32 %1046, ptr %125, align 4, !tbaa !5
  %1047 = load i32, ptr %30, align 4, !tbaa !5
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %1048
  %1050 = load i32, ptr %27, align 4, !tbaa !5
  %1051 = sext i32 %1050 to i64
  %1052 = getelementptr inbounds [128 x [128 x i32]], ptr %1049, i64 0, i64 %1051
  %1053 = load i32, ptr %125, align 4, !tbaa !5
  %1054 = sext i32 %1053 to i64
  %1055 = getelementptr inbounds [128 x i32], ptr %1052, i64 0, i64 %1054
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr %1055, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #5
  br label %1058

1058:                                             ; preds = %1044
  %1059 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %123) #5
  br label %1041

1060:                                             ; preds = %1043
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #5
  %1061 = load i32, ptr %28, align 4, !tbaa !5
  %1062 = sext i32 %1061 to i64
  %1063 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %1062
  store ptr %1063, ptr %126, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #5
  %1064 = load ptr, ptr %126, align 8, !tbaa !15
  %1065 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1064) #5
  %1066 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %127, i32 0, i32 0
  store ptr %1065, ptr %1066, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #5
  %1067 = load ptr, ptr %126, align 8, !tbaa !15
  %1068 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1067) #5
  %1069 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %128, i32 0, i32 0
  store ptr %1068, ptr %1069, align 8
  br label %1070

1070:                                             ; preds = %1087, %1060
  %1071 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %127, ptr noundef nonnull align 8 dereferenceable(8) %128) #5
  br i1 %1071, label %1073, label %1072

1072:                                             ; preds = %1070
  store i32 47, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #5
  br label %1089

1073:                                             ; preds = %1070
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #5
  %1074 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %127) #5
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  store i32 %1075, ptr %129, align 4, !tbaa !5
  %1076 = load i32, ptr %30, align 4, !tbaa !5
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %1077
  %1079 = load i32, ptr %27, align 4, !tbaa !5
  %1080 = sext i32 %1079 to i64
  %1081 = getelementptr inbounds [128 x [128 x i32]], ptr %1078, i64 0, i64 %1080
  %1082 = load i32, ptr %129, align 4, !tbaa !5
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds [128 x i32], ptr %1081, i64 0, i64 %1083
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr %1084, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #5
  br label %1087

1087:                                             ; preds = %1073
  %1088 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %127) #5
  br label %1070

1089:                                             ; preds = %1072
  %1090 = load i64, ptr %29, align 8, !tbaa !17
  %1091 = load i64, ptr %26, align 8, !tbaa !17
  %1092 = mul nsw i64 %1090, %1091
  %1093 = load i64, ptr @ans, align 8, !tbaa !17
  %1094 = add nsw i64 %1093, %1092
  store i64 %1094, ptr @ans, align 8, !tbaa !17
  %1095 = load i32, ptr %30, align 4, !tbaa !5
  store i32 %1095, ptr %3, align 4
  store i32 1, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  br label %1096

1096:                                             ; preds = %1089, %231, %134
  %1097 = load i32, ptr %3, align 4
  ret i32 %1097
}

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #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 = { 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 #4 = { 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 #5 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !16, i64 0}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"long long", !7, i64 0}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}


; 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::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::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, int>, std::_Select1st<std::pair<const std::pair<int, int>, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<int, int>, std::pair<const std::pair<int, int>, int>, std::_Select1st<std::pair<const std::pair<int, int>, int>>, std::less<std::pair<int, int>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.std::pair" = type { i32, i32 }

@sup = external dso_local global [128 x %"class.std::vector"], align 16
@sub = external dso_local global [128 x %"class.std::vector"], align 16
@a = external dso_local local_unnamed_addr global [100100 x i32], align 16
@posi = external dso_local global [16384 x %"class.std::vector"], align 16
@maxpos = external dso_local global %"class.std::map", align 8
@ans = external dso_local local_unnamed_addr global i64, align 8
@isFree = external dso_local local_unnamed_addr global [20 x i8], align 16
@dp1 = external dso_local local_unnamed_addr global [20 x [128 x [128 x i32]]], align 16
@dp2 = external dso_local local_unnamed_addr global [20 x [128 x [128 x i32]]], align 16

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z5solveii(i32 noundef %0, i32 noundef %1) local_unnamed_addr #1 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %9 = alloca i32, align 4
  %10 = alloca %"struct.std::pair", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  store i32 %0, ptr %3, align 4, !tbaa !5
  store i32 %1, ptr %4, align 4, !tbaa !5
  %51 = add nsw i32 %0, 1
  %52 = icmp eq i32 %51, %1
  br i1 %52, label %528, label %53

53:                                               ; preds = %2
  %54 = sub i32 %0, %1
  %55 = icmp eq i32 %54, -2
  br i1 %55, label %.preheader.preheader, label %135

.preheader.preheader:                             ; preds = %53
  %56 = load i8, ptr @isFree, align 16, !tbaa !9, !range !11, !noundef !12
  %57 = icmp eq i8 %56, 0
  br i1 %57, label %58, label %.preheader.1

58:                                               ; preds = %.preheader.19, %.preheader.18, %.preheader.17, %.preheader.16, %.preheader.15, %.preheader.14, %.preheader.13, %.preheader.12, %.preheader.11, %.preheader.10, %.preheader.9, %.preheader.8, %.preheader.7, %.preheader.6, %.preheader.5, %.preheader.4, %.preheader.3, %.preheader.2, %.preheader.1, %.preheader.preheader
  %.0213309.lcssa.wide = phi i64 [ 0, %.preheader.preheader ], [ 1, %.preheader.1 ], [ 2, %.preheader.2 ], [ 3, %.preheader.3 ], [ 4, %.preheader.4 ], [ 5, %.preheader.5 ], [ 6, %.preheader.6 ], [ 7, %.preheader.7 ], [ 8, %.preheader.8 ], [ 9, %.preheader.9 ], [ 10, %.preheader.10 ], [ 11, %.preheader.11 ], [ 12, %.preheader.12 ], [ 13, %.preheader.13 ], [ 14, %.preheader.14 ], [ 15, %.preheader.15 ], [ 16, %.preheader.16 ], [ 17, %.preheader.17 ], [ 18, %.preheader.18 ], [ 19, %.preheader.19 ]
  %59 = trunc nuw nsw i64 %.0213309.lcssa.wide to i32
  %60 = getelementptr inbounds [20 x i8], ptr @isFree, i64 0, i64 %.0213309.lcssa.wide
  store i8 1, ptr %60, align 1, !tbaa !9
  br label %.loopexit

.preheader.1:                                     ; preds = %.preheader.preheader
  %61 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 1), align 1, !tbaa !9, !range !11, !noundef !12
  %62 = icmp eq i8 %61, 0
  br i1 %62, label %58, label %.preheader.2

.preheader.2:                                     ; preds = %.preheader.1
  %63 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 2), align 2, !tbaa !9, !range !11, !noundef !12
  %64 = icmp eq i8 %63, 0
  br i1 %64, label %58, label %.preheader.3

.preheader.3:                                     ; preds = %.preheader.2
  %65 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 3), align 1, !tbaa !9, !range !11, !noundef !12
  %66 = icmp eq i8 %65, 0
  br i1 %66, label %58, label %.preheader.4

.preheader.4:                                     ; preds = %.preheader.3
  %67 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 4), align 4, !tbaa !9, !range !11, !noundef !12
  %68 = icmp eq i8 %67, 0
  br i1 %68, label %58, label %.preheader.5

.preheader.5:                                     ; preds = %.preheader.4
  %69 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 5), align 1, !tbaa !9, !range !11, !noundef !12
  %70 = icmp eq i8 %69, 0
  br i1 %70, label %58, label %.preheader.6

.preheader.6:                                     ; preds = %.preheader.5
  %71 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 6), align 2, !tbaa !9, !range !11, !noundef !12
  %72 = icmp eq i8 %71, 0
  br i1 %72, label %58, label %.preheader.7

.preheader.7:                                     ; preds = %.preheader.6
  %73 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 7), align 1, !tbaa !9, !range !11, !noundef !12
  %74 = icmp eq i8 %73, 0
  br i1 %74, label %58, label %.preheader.8

.preheader.8:                                     ; preds = %.preheader.7
  %75 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 8), align 8, !tbaa !9, !range !11, !noundef !12
  %76 = icmp eq i8 %75, 0
  br i1 %76, label %58, label %.preheader.9

.preheader.9:                                     ; preds = %.preheader.8
  %77 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 9), align 1, !tbaa !9, !range !11, !noundef !12
  %78 = icmp eq i8 %77, 0
  br i1 %78, label %58, label %.preheader.10

.preheader.10:                                    ; preds = %.preheader.9
  %79 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 10), align 2, !tbaa !9, !range !11, !noundef !12
  %80 = icmp eq i8 %79, 0
  br i1 %80, label %58, label %.preheader.11

.preheader.11:                                    ; preds = %.preheader.10
  %81 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 11), align 1, !tbaa !9, !range !11, !noundef !12
  %82 = icmp eq i8 %81, 0
  br i1 %82, label %58, label %.preheader.12

.preheader.12:                                    ; preds = %.preheader.11
  %83 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 12), align 4, !tbaa !9, !range !11, !noundef !12
  %84 = icmp eq i8 %83, 0
  br i1 %84, label %58, label %.preheader.13

.preheader.13:                                    ; preds = %.preheader.12
  %85 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 13), align 1, !tbaa !9, !range !11, !noundef !12
  %86 = icmp eq i8 %85, 0
  br i1 %86, label %58, label %.preheader.14

.preheader.14:                                    ; preds = %.preheader.13
  %87 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 14), align 2, !tbaa !9, !range !11, !noundef !12
  %88 = icmp eq i8 %87, 0
  br i1 %88, label %58, label %.preheader.15

.preheader.15:                                    ; preds = %.preheader.14
  %89 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 15), align 1, !tbaa !9, !range !11, !noundef !12
  %90 = icmp eq i8 %89, 0
  br i1 %90, label %58, label %.preheader.16

.preheader.16:                                    ; preds = %.preheader.15
  %91 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 16), align 16, !tbaa !9, !range !11, !noundef !12
  %92 = icmp eq i8 %91, 0
  br i1 %92, label %58, label %.preheader.17

.preheader.17:                                    ; preds = %.preheader.16
  %93 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 17), align 1, !tbaa !9, !range !11, !noundef !12
  %94 = icmp eq i8 %93, 0
  br i1 %94, label %58, label %.preheader.18

.preheader.18:                                    ; preds = %.preheader.17
  %95 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 18), align 2, !tbaa !9, !range !11, !noundef !12
  %96 = icmp eq i8 %95, 0
  br i1 %96, label %58, label %.preheader.19

.preheader.19:                                    ; preds = %.preheader.18
  %97 = load i8, ptr getelementptr inbounds (i8, ptr @isFree, i64 19), align 1, !tbaa !9, !range !11, !noundef !12
  %98 = icmp eq i8 %97, 0
  br i1 %98, label %58, label %.loopexit

.loopexit:                                        ; preds = %.preheader.19, %58
  %.0212 = phi i32 [ %59, %58 ], [ -1, %.preheader.19 ]
  %99 = sext i32 %51 to i64
  %100 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %99
  %101 = load i32, ptr %100, align 4, !tbaa !5
  %102 = ashr i32 %101, 7
  %103 = and i32 %101, 127
  %104 = zext nneg i32 %103 to i64
  %105 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %104
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  %106 = tail call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %105) #5
  store ptr %106, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #5
  %107 = tail call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %105) #5
  store ptr %107, ptr %6, align 8
  %108 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #5
  br i1 %108, label %.lr.ph311, label %._crit_edge312

.lr.ph311:                                        ; preds = %.loopexit
  %109 = sext i32 %.0212 to i64
  %110 = sext i32 %102 to i64
  br label %117

._crit_edge312:                                   ; preds = %117, %.loopexit
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  %111 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %104
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #5
  %112 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #5
  store ptr %112, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  %113 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #5
  store ptr %113, ptr %8, align 8
  %114 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #5
  br i1 %114, label %.lr.ph314, label %._crit_edge315

.lr.ph314:                                        ; preds = %._crit_edge312
  %115 = sext i32 %.0212 to i64
  %116 = sext i32 %102 to i64
  br label %126

117:                                              ; preds = %.lr.ph311, %117
  %118 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #5
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = sext i32 %119 to i64
  %121 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %109, i64 %110, i64 %120
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr %121, align 4, !tbaa !5
  %124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %5) #5
  %125 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #5
  br i1 %125, label %117, label %._crit_edge312

._crit_edge315:                                   ; preds = %126, %._crit_edge312
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  br label %528

126:                                              ; preds = %.lr.ph314, %126
  %127 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = sext i32 %128 to i64
  %130 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %115, i64 %116, i64 %129
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = add nsw i32 %131, 1
  store i32 %132, ptr %130, align 4, !tbaa !5
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #5
  %134 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #5
  br i1 %134, label %126, label %._crit_edge315

135:                                              ; preds = %53
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #5
  %136 = call i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4)
  store i64 %136, ptr %10, align 8
  %137 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt4pairIiiEiSt4lessIS1_ESaIS0_IKS1_iEEEixEOS1_(ptr noundef nonnull align 8 dereferenceable(48) @maxpos, ptr noundef nonnull align 4 dereferenceable(8) %10)
  %138 = load i32, ptr %137, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #5
  store i32 %138, ptr %9, align 4, !tbaa !5
  %139 = load i32, ptr %3, align 4, !tbaa !5
  %140 = xor i32 %139, -1
  %141 = add i32 %138, %140
  %142 = load i32, ptr %4, align 4, !tbaa !5
  %143 = xor i32 %138, -1
  %144 = add i32 %142, %143
  %.not = icmp slt i32 %141, %144
  br i1 %.not, label %150, label %145

145:                                              ; preds = %135
  %146 = call noundef i32 @_Z5solveii(i32 noundef %139, i32 noundef %138)
  %147 = load i32, ptr %9, align 4, !tbaa !5
  %148 = load i32, ptr %4, align 4, !tbaa !5
  %149 = call noundef i32 @_Z5solveii(i32 noundef %147, i32 noundef %148)
  br label %155

150:                                              ; preds = %135
  %151 = call noundef i32 @_Z5solveii(i32 noundef %138, i32 noundef %142)
  %152 = load i32, ptr %3, align 4, !tbaa !5
  %153 = load i32, ptr %9, align 4, !tbaa !5
  %154 = call noundef i32 @_Z5solveii(i32 noundef %152, i32 noundef %153)
  br label %155

155:                                              ; preds = %150, %145
  %.0215 = phi i32 [ %149, %145 ], [ %151, %150 ]
  %.0214 = phi i32 [ %146, %145 ], [ %154, %150 ]
  %156 = load i32, ptr %9, align 4, !tbaa !5
  %157 = sext i32 %156 to i64
  %158 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %157
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = sext i32 %159 to i64
  %161 = ashr i32 %159, 7
  %162 = and i32 %159, 127
  %163 = sext i32 %161 to i64
  %164 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %163
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  %165 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %164) #5
  store ptr %165, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %166 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %164) #5
  store ptr %166, ptr %12, align 8
  %167 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #5
  br i1 %167, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %155
  %168 = sext i32 %.0214 to i64
  %169 = zext nneg i32 %162 to i64
  br label %176

._crit_edge:                                      ; preds = %176, %155
  %.0216.lcssa = phi i64 [ 0, %155 ], [ %183, %176 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  %170 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %163
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  %171 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %170) #5
  store ptr %171, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  %172 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %170) #5
  store ptr %172, ptr %14, align 8
  %173 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #5
  br i1 %173, label %.lr.ph233, label %._crit_edge234

.lr.ph233:                                        ; preds = %._crit_edge
  %174 = sext i32 %.0214 to i64
  %175 = zext nneg i32 %162 to i64
  br label %201

176:                                              ; preds = %.lr.ph, %176
  %.0216230 = phi i64 [ 0, %.lr.ph ], [ %183, %176 ]
  %177 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  %178 = load i32, ptr %177, align 4, !tbaa !5
  %179 = sext i32 %178 to i64
  %180 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %168, i64 %179, i64 %169
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = sext i32 %181 to i64
  %183 = add nsw i64 %.0216230, %182
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  %185 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #5
  br i1 %185, label %176, label %._crit_edge

._crit_edge234:                                   ; preds = %201, %._crit_edge
  %.1.lcssa = phi i64 [ %.0216.lcssa, %._crit_edge ], [ %208, %201 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %186 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %160
  %187 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #5
  %188 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #5
  %189 = call ptr @_ZSt11lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %187, ptr %188, ptr noundef nonnull align 4 dereferenceable(4) %9)
  store ptr %189, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  %190 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #5
  %191 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #5
  %192 = call ptr @_ZSt11upper_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %190, ptr %191, ptr noundef nonnull align 4 dereferenceable(4) %3)
  store ptr %192, ptr %16, align 8
  %193 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  %sext = shl i64 %193, 32
  %194 = ashr exact i64 %sext, 32
  %195 = sub nsw i64 %.1.lcssa, %194
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  %196 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %164) #5
  store ptr %196, ptr %17, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  %197 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %164) #5
  store ptr %197, ptr %18, align 8
  %198 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  br i1 %198, label %.lr.ph238, label %._crit_edge239

.lr.ph238:                                        ; preds = %._crit_edge234
  %199 = sext i32 %.0215 to i64
  %200 = zext nneg i32 %162 to i64
  br label %216

201:                                              ; preds = %.lr.ph233, %201
  %.1231 = phi i64 [ %.0216.lcssa, %.lr.ph233 ], [ %208, %201 ]
  %202 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #5
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %174, i64 %204, i64 %175
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = sext i32 %206 to i64
  %208 = add nsw i64 %.1231, %207
  %209 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #5
  %210 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #5
  br i1 %210, label %201, label %._crit_edge234

._crit_edge239:                                   ; preds = %216, %._crit_edge234
  %.2.lcssa = phi i64 [ %195, %._crit_edge234 ], [ %223, %216 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #5
  %211 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %170) #5
  store ptr %211, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  %212 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %170) #5
  store ptr %212, ptr %20, align 8
  %213 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  br i1 %213, label %.lr.ph243, label %._crit_edge244

.lr.ph243:                                        ; preds = %._crit_edge239
  %214 = sext i32 %.0215 to i64
  %215 = zext nneg i32 %162 to i64
  br label %235

216:                                              ; preds = %.lr.ph238, %216
  %.2236 = phi i64 [ %195, %.lr.ph238 ], [ %223, %216 ]
  %217 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %199, i64 %219, i64 %200
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = sext i32 %221 to i64
  %223 = add nsw i64 %.2236, %222
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %225 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  br i1 %225, label %216, label %._crit_edge239

._crit_edge244:                                   ; preds = %235, %._crit_edge239
  %.3.lcssa = phi i64 [ %.2.lcssa, %._crit_edge239 ], [ %242, %235 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  %226 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #5
  %227 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #5
  %228 = call ptr @_ZSt11lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %226, ptr %227, ptr noundef nonnull align 4 dereferenceable(4) %4)
  store ptr %228, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #5
  %229 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #5
  %230 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %186) #5
  %231 = call ptr @_ZSt11upper_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %229, ptr %230, ptr noundef nonnull align 4 dereferenceable(4) %9)
  store ptr %231, ptr %22, align 8
  %232 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  %sext223 = shl i64 %232, 32
  %233 = ashr exact i64 %sext223, 32
  %234 = sub nsw i64 %.3.lcssa, %233
  %.not224 = icmp sgt i32 %141, %144
  br i1 %.not224, label %370, label %245

235:                                              ; preds = %.lr.ph243, %235
  %.3241 = phi i64 [ %.2.lcssa, %.lr.ph243 ], [ %242, %235 ]
  %236 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #5
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %214, i64 %238, i64 %215
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = sext i32 %240 to i64
  %242 = add nsw i64 %.3241, %241
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #5
  %244 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  br i1 %244, label %235, label %._crit_edge244

245:                                              ; preds = %._crit_edge244
  %246 = load i32, ptr %3, align 4, !tbaa !5
  %.0218256 = add nsw i32 %246, 1
  %247 = load i32, ptr %9, align 4, !tbaa !5
  %248 = icmp slt i32 %.0218256, %247
  br i1 %248, label %.lr.ph260, label %._crit_edge261

.lr.ph260:                                        ; preds = %245
  %249 = sext i32 %.0215 to i64
  %250 = sext i32 %246 to i64
  %251 = add nsw i64 %250, 1
  br label %259

._crit_edge261.loopexit:                          ; preds = %._crit_edge254
  %.pre = load i32, ptr %3, align 4, !tbaa !5
  %.pre343 = add nsw i32 %.pre, 1
  br label %._crit_edge261

._crit_edge261:                                   ; preds = %._crit_edge261.loopexit, %245
  %.0220269.pre-phi = phi i32 [ %.pre343, %._crit_edge261.loopexit ], [ %.0218256, %245 ]
  %252 = phi i32 [ %316, %._crit_edge261.loopexit ], [ %247, %245 ]
  %253 = phi i32 [ %.pre, %._crit_edge261.loopexit ], [ %246, %245 ]
  %.4.lcssa = phi i64 [ %315, %._crit_edge261.loopexit ], [ %234, %245 ]
  %254 = icmp slt i32 %.0220269.pre-phi, %252
  %255 = sext i32 %.0214 to i64
  br i1 %254, label %.lr.ph272, label %._crit_edge273

.lr.ph272:                                        ; preds = %._crit_edge261
  %256 = sext i32 %.0215 to i64
  %257 = sext i32 %253 to i64
  %258 = add nsw i64 %257, 1
  br label %329

259:                                              ; preds = %.lr.ph260, %._crit_edge254
  %indvars.iv = phi i64 [ %251, %.lr.ph260 ], [ %indvars.iv.next, %._crit_edge254 ]
  %.4257 = phi i64 [ %234, %.lr.ph260 ], [ %315, %._crit_edge254 ]
  %260 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %indvars.iv
  %261 = load i32, ptr %260, align 4, !tbaa !5
  %262 = ashr i32 %261, 7
  %263 = and i32 %261, 127
  %264 = sext i32 %262 to i64
  %265 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %264
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  %266 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %265) #5
  store ptr %266, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  %267 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %265) #5
  store ptr %267, ptr %24, align 8
  %268 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  br i1 %268, label %.lr.ph248, label %._crit_edge249

.lr.ph248:                                        ; preds = %259
  %269 = zext nneg i32 %263 to i64
  br label %275

._crit_edge249:                                   ; preds = %275, %259
  %.5.lcssa = phi i64 [ %.4257, %259 ], [ %282, %275 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  %270 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %264
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #5
  %271 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %270) #5
  store ptr %271, ptr %25, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  %272 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %270) #5
  store ptr %272, ptr %26, align 8
  %273 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #5
  br i1 %273, label %.lr.ph253, label %._crit_edge254

.lr.ph253:                                        ; preds = %._crit_edge249
  %274 = zext nneg i32 %263 to i64
  br label %319

275:                                              ; preds = %.lr.ph248, %275
  %.5246 = phi i64 [ %.4257, %.lr.ph248 ], [ %282, %275 ]
  %276 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #5
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %249, i64 %278, i64 %269
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = sext i32 %280 to i64
  %282 = add nsw i64 %.5246, %281
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #5
  %284 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  br i1 %284, label %275, label %._crit_edge249

._crit_edge254:                                   ; preds = %319, %._crit_edge249
  %.6.lcssa = phi i64 [ %.5.lcssa, %._crit_edge249 ], [ %326, %319 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #5
  %285 = load i32, ptr %260, align 4, !tbaa !5
  %286 = sext i32 %285 to i64
  %287 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %286
  %288 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %287) #5
  %289 = load i32, ptr %260, align 4, !tbaa !5
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %290
  %292 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %291) #5
  %293 = call ptr @_ZSt11lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %288, ptr %292, ptr noundef nonnull align 4 dereferenceable(4) %4)
  store ptr %293, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  %294 = load i32, ptr %260, align 4, !tbaa !5
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %295
  %297 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %296) #5
  store ptr %297, ptr %28, align 8
  %298 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #5
  %299 = load i32, ptr %260, align 4, !tbaa !5
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %300
  %302 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %301) #5
  %303 = load i32, ptr %260, align 4, !tbaa !5
  %304 = sext i32 %303 to i64
  %305 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %304
  %306 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %305) #5
  %307 = call ptr @_ZSt11upper_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %302, ptr %306, ptr noundef nonnull align 4 dereferenceable(4) %9)
  store ptr %307, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  %308 = load i32, ptr %260, align 4, !tbaa !5
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %309
  %311 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %310) #5
  store ptr %311, ptr %30, align 8
  %312 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #5
  %313 = sub i64 %298, %312
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  %sext228 = shl i64 %313, 32
  %314 = ashr exact i64 %sext228, 32
  %315 = sub nsw i64 %.6.lcssa, %314
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %316 = load i32, ptr %9, align 4, !tbaa !5
  %317 = sext i32 %316 to i64
  %318 = icmp slt i64 %indvars.iv.next, %317
  br i1 %318, label %259, label %._crit_edge261.loopexit, !llvm.loop !13

319:                                              ; preds = %.lr.ph253, %319
  %.6251 = phi i64 [ %.5.lcssa, %.lr.ph253 ], [ %326, %319 ]
  %320 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #5
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %249, i64 %322, i64 %274
  %324 = load i32, ptr %323, align 4, !tbaa !5
  %325 = sext i32 %324 to i64
  %326 = add nsw i64 %.6251, %325
  %327 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #5
  %328 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #5
  br i1 %328, label %319, label %._crit_edge254

329:                                              ; preds = %.lr.ph272, %._crit_edge268
  %indvars.iv329 = phi i64 [ %258, %.lr.ph272 ], [ %indvars.iv.next330, %._crit_edge268 ]
  %330 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %indvars.iv329
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = ashr i32 %331, 7
  %333 = and i32 %331, 127
  %334 = zext nneg i32 %333 to i64
  %335 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %334
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  %336 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %335) #5
  store ptr %336, ptr %31, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  %337 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %335) #5
  store ptr %337, ptr %32, align 8
  %338 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #5
  br i1 %338, label %.lr.ph264, label %._crit_edge265

.lr.ph264:                                        ; preds = %329
  %339 = sext i32 %332 to i64
  br label %345

._crit_edge265:                                   ; preds = %345, %329
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  %340 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %334
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  %341 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %340) #5
  store ptr %341, ptr %33, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  %342 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %340) #5
  store ptr %342, ptr %34, align 8
  %343 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #5
  br i1 %343, label %.lr.ph267, label %._crit_edge268

.lr.ph267:                                        ; preds = %._crit_edge265
  %344 = sext i32 %332 to i64
  br label %359

345:                                              ; preds = %.lr.ph264, %345
  %346 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #5
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %255, i64 %339, i64 %348
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %256, i64 %339, i64 %348
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = add nsw i32 %352, %350
  store i32 %353, ptr %351, align 4, !tbaa !5
  store i32 0, ptr %349, align 4, !tbaa !5
  %354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #5
  %355 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #5
  br i1 %355, label %345, label %._crit_edge265

._crit_edge268:                                   ; preds = %359, %._crit_edge265
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  %indvars.iv.next330 = add nsw i64 %indvars.iv329, 1
  %356 = load i32, ptr %9, align 4, !tbaa !5
  %357 = sext i32 %356 to i64
  %358 = icmp slt i64 %indvars.iv.next330, %357
  br i1 %358, label %329, label %._crit_edge273, !llvm.loop !15

359:                                              ; preds = %.lr.ph267, %359
  %360 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #5
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %255, i64 %344, i64 %362
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %256, i64 %344, i64 %362
  %366 = load i32, ptr %365, align 4, !tbaa !5
  %367 = add nsw i32 %366, %364
  store i32 %367, ptr %365, align 4, !tbaa !5
  store i32 0, ptr %363, align 4, !tbaa !5
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #5
  %369 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #5
  br i1 %369, label %359, label %._crit_edge268

370:                                              ; preds = %._crit_edge244
  %371 = load i32, ptr %9, align 4, !tbaa !5
  %.0221284 = add nsw i32 %371, 1
  %372 = load i32, ptr %4, align 4, !tbaa !5
  %373 = icmp slt i32 %.0221284, %372
  br i1 %373, label %.lr.ph288, label %._crit_edge289

.lr.ph288:                                        ; preds = %370
  %374 = sext i32 %.0214 to i64
  %375 = sext i32 %371 to i64
  %376 = add nsw i64 %375, 1
  br label %384

._crit_edge289.loopexit:                          ; preds = %._crit_edge282
  %.pre341 = load i32, ptr %9, align 4, !tbaa !5
  %.pre342 = add nsw i32 %.pre341, 1
  br label %._crit_edge289

._crit_edge289:                                   ; preds = %._crit_edge289.loopexit, %370
  %.0219297.pre-phi = phi i32 [ %.pre342, %._crit_edge289.loopexit ], [ %.0221284, %370 ]
  %377 = phi i32 [ %441, %._crit_edge289.loopexit ], [ %372, %370 ]
  %378 = phi i32 [ %.pre341, %._crit_edge289.loopexit ], [ %371, %370 ]
  %.7.lcssa = phi i64 [ %440, %._crit_edge289.loopexit ], [ %234, %370 ]
  %379 = icmp slt i32 %.0219297.pre-phi, %377
  %380 = sext i32 %.0215 to i64
  br i1 %379, label %.lr.ph300, label %._crit_edge273

.lr.ph300:                                        ; preds = %._crit_edge289
  %381 = sext i32 %.0214 to i64
  %382 = sext i32 %378 to i64
  %383 = add nsw i64 %382, 1
  br label %454

384:                                              ; preds = %.lr.ph288, %._crit_edge282
  %indvars.iv332 = phi i64 [ %376, %.lr.ph288 ], [ %indvars.iv.next333, %._crit_edge282 ]
  %.7285 = phi i64 [ %234, %.lr.ph288 ], [ %440, %._crit_edge282 ]
  %385 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %indvars.iv332
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = ashr i32 %386, 7
  %388 = and i32 %386, 127
  %389 = sext i32 %387 to i64
  %390 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %389
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #5
  %391 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %390) #5
  store ptr %391, ptr %35, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  %392 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %390) #5
  store ptr %392, ptr %36, align 8
  %393 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #5
  br i1 %393, label %.lr.ph276, label %._crit_edge277

.lr.ph276:                                        ; preds = %384
  %394 = zext nneg i32 %388 to i64
  br label %400

._crit_edge277:                                   ; preds = %400, %384
  %.8.lcssa = phi i64 [ %.7285, %384 ], [ %407, %400 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  %395 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %389
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #5
  %396 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %395) #5
  store ptr %396, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  %397 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %395) #5
  store ptr %397, ptr %38, align 8
  %398 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #5
  br i1 %398, label %.lr.ph281, label %._crit_edge282

.lr.ph281:                                        ; preds = %._crit_edge277
  %399 = zext nneg i32 %388 to i64
  br label %444

400:                                              ; preds = %.lr.ph276, %400
  %.8274 = phi i64 [ %.7285, %.lr.ph276 ], [ %407, %400 ]
  %401 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #5
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %374, i64 %403, i64 %394
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = sext i32 %405 to i64
  %407 = add nsw i64 %.8274, %406
  %408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #5
  %409 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #5
  br i1 %409, label %400, label %._crit_edge277

._crit_edge282:                                   ; preds = %444, %._crit_edge277
  %.9.lcssa = phi i64 [ %.8.lcssa, %._crit_edge277 ], [ %451, %444 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  %410 = load i32, ptr %385, align 4, !tbaa !5
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %411
  %413 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %412) #5
  %414 = load i32, ptr %385, align 4, !tbaa !5
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %415
  %417 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %416) #5
  %418 = call ptr @_ZSt11lower_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %413, ptr %417, ptr noundef nonnull align 4 dereferenceable(4) %9)
  store ptr %418, ptr %39, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #5
  %419 = load i32, ptr %385, align 4, !tbaa !5
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %420
  %422 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %421) #5
  store ptr %422, ptr %40, align 8
  %423 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #5
  %424 = load i32, ptr %385, align 4, !tbaa !5
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %425
  %427 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %426) #5
  %428 = load i32, ptr %385, align 4, !tbaa !5
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %429
  %431 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %430) #5
  %432 = call ptr @_ZSt11upper_boundIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEiET_S7_S7_RKT0_(ptr %427, ptr %431, ptr noundef nonnull align 4 dereferenceable(4) %3)
  store ptr %432, ptr %41, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #5
  %433 = load i32, ptr %385, align 4, !tbaa !5
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds [16384 x %"class.std::vector"], ptr @posi, i64 0, i64 %434
  %436 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %435) #5
  store ptr %436, ptr %42, align 8
  %437 = call noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #5
  %438 = sub i64 %423, %437
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  %sext226 = shl i64 %438, 32
  %439 = ashr exact i64 %sext226, 32
  %440 = sub nsw i64 %.9.lcssa, %439
  %indvars.iv.next333 = add nsw i64 %indvars.iv332, 1
  %441 = load i32, ptr %4, align 4, !tbaa !5
  %442 = sext i32 %441 to i64
  %443 = icmp slt i64 %indvars.iv.next333, %442
  br i1 %443, label %384, label %._crit_edge289.loopexit, !llvm.loop !16

444:                                              ; preds = %.lr.ph281, %444
  %.9279 = phi i64 [ %.8.lcssa, %.lr.ph281 ], [ %451, %444 ]
  %445 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #5
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %374, i64 %447, i64 %399
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = sext i32 %449 to i64
  %451 = add nsw i64 %.9279, %450
  %452 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #5
  %453 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #5
  br i1 %453, label %444, label %._crit_edge282

454:                                              ; preds = %.lr.ph300, %._crit_edge296
  %indvars.iv335 = phi i64 [ %383, %.lr.ph300 ], [ %indvars.iv.next336, %._crit_edge296 ]
  %455 = getelementptr inbounds [100100 x i32], ptr @a, i64 0, i64 %indvars.iv335
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = ashr i32 %456, 7
  %458 = and i32 %456, 127
  %459 = zext nneg i32 %458 to i64
  %460 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %459
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #5
  %461 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %460) #5
  store ptr %461, ptr %43, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #5
  %462 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %460) #5
  store ptr %462, ptr %44, align 8
  %463 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #5
  br i1 %463, label %.lr.ph292, label %._crit_edge293

.lr.ph292:                                        ; preds = %454
  %464 = sext i32 %457 to i64
  br label %470

._crit_edge293:                                   ; preds = %470, %454
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #5
  %465 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %459
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #5
  %466 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %465) #5
  store ptr %466, ptr %45, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #5
  %467 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %465) #5
  store ptr %467, ptr %46, align 8
  %468 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #5
  br i1 %468, label %.lr.ph295, label %._crit_edge296

.lr.ph295:                                        ; preds = %._crit_edge293
  %469 = sext i32 %457 to i64
  br label %484

470:                                              ; preds = %.lr.ph292, %470
  %471 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #5
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %380, i64 %464, i64 %473
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %381, i64 %464, i64 %473
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = add nsw i32 %477, %475
  store i32 %478, ptr %476, align 4, !tbaa !5
  store i32 0, ptr %474, align 4, !tbaa !5
  %479 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #5
  %480 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #5
  br i1 %480, label %470, label %._crit_edge293

._crit_edge296:                                   ; preds = %484, %._crit_edge293
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #5
  %indvars.iv.next336 = add nsw i64 %indvars.iv335, 1
  %481 = load i32, ptr %4, align 4, !tbaa !5
  %482 = sext i32 %481 to i64
  %483 = icmp slt i64 %indvars.iv.next336, %482
  br i1 %483, label %454, label %._crit_edge273, !llvm.loop !17

484:                                              ; preds = %.lr.ph295, %484
  %485 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #5
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %380, i64 %469, i64 %487
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %381, i64 %469, i64 %487
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = add nsw i32 %491, %489
  store i32 %492, ptr %490, align 4, !tbaa !5
  store i32 0, ptr %488, align 4, !tbaa !5
  %493 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #5
  %494 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #5
  br i1 %494, label %484, label %._crit_edge296

._crit_edge273:                                   ; preds = %._crit_edge268, %._crit_edge296, %._crit_edge289, %._crit_edge261
  %.pre-phi.sink = phi i64 [ %255, %._crit_edge261 ], [ %380, %._crit_edge289 ], [ %380, %._crit_edge296 ], [ %255, %._crit_edge268 ]
  %.0217 = phi i32 [ %.0215, %._crit_edge261 ], [ %.0214, %._crit_edge289 ], [ %.0214, %._crit_edge296 ], [ %.0215, %._crit_edge268 ]
  %.10 = phi i64 [ %.4.lcssa, %._crit_edge261 ], [ %.7.lcssa, %._crit_edge289 ], [ %.7.lcssa, %._crit_edge296 ], [ %.4.lcssa, %._crit_edge268 ]
  %495 = getelementptr inbounds [20 x i8], ptr @isFree, i64 0, i64 %.pre-phi.sink
  store i8 0, ptr %495, align 1, !tbaa !9
  %496 = zext nneg i32 %162 to i64
  %497 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sub, i64 0, i64 %496
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #5
  %498 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %497) #5
  store ptr %498, ptr %47, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #5
  %499 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %497) #5
  store ptr %499, ptr %48, align 8
  %500 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #5
  br i1 %500, label %.lr.ph303, label %._crit_edge304

.lr.ph303:                                        ; preds = %._crit_edge273
  %501 = sext i32 %.0217 to i64
  br label %507

._crit_edge304:                                   ; preds = %507, %._crit_edge273
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #5
  %502 = getelementptr inbounds [128 x %"class.std::vector"], ptr @sup, i64 0, i64 %496
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #5
  %503 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %502) #5
  store ptr %503, ptr %49, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #5
  %504 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %502) #5
  store ptr %504, ptr %50, align 8
  %505 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50) #5
  br i1 %505, label %.lr.ph306, label %._crit_edge307

.lr.ph306:                                        ; preds = %._crit_edge304
  %506 = sext i32 %.0217 to i64
  br label %519

507:                                              ; preds = %.lr.ph303, %507
  %508 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #5
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp1, i64 0, i64 %501, i64 %163, i64 %510
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr %511, align 4, !tbaa !5
  %514 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #5
  %515 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #5
  br i1 %515, label %507, label %._crit_edge304

._crit_edge307:                                   ; preds = %519, %._crit_edge304
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  %516 = mul nsw i64 %.10, %160
  %517 = load i64, ptr @ans, align 8, !tbaa !18
  %518 = add nsw i64 %517, %516
  store i64 %518, ptr @ans, align 8, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #5
  br label %528

519:                                              ; preds = %.lr.ph306, %519
  %520 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %49) #5
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds [20 x [128 x [128 x i32]]], ptr @dp2, i64 0, i64 %506, i64 %163, i64 %522
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = add nsw i32 %524, 1
  store i32 %525, ptr %523, align 4, !tbaa !5
  %526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %49) #5
  %527 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50) #5
  br i1 %527, label %519, label %._crit_edge307

528:                                              ; preds = %2, %._crit_edge307, %._crit_edge315
  %.0 = phi i32 [ %.0212, %._crit_edge315 ], [ %.0217, %._crit_edge307 ], [ 19, %2 ]
  ret i32 %.0
}

; 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: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN9__gnu_cxxmiIPiSt6vectorIiSaIiEEEENS_17__normal_iteratorIT_T0_E15difference_typeERKS8_SB_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #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 = { 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 #4 = { 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 #5 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = !{!19, !19, i64 0}
!19 = !{!"long long", !7, i64 0}


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