; LLVM IR from eyangch/competitive-programming :: USACOtraining/4.4 (frameup)

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

%"class.std::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::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.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.8" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@stdin = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@stdout = external global ptr, align 8
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z7topSortiiRA26_A26_bRSt6vectorIiSaIiEERA26_iRS_RS2_IS4_SaIS4_EE(i32 noundef, i32 noundef, ptr noundef nonnull align 1 dereferenceable(676), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(104), ptr noundef nonnull align 1 dereferenceable(26), ptr noundef nonnull align 8 dereferenceable(24)) #0

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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #2 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca i64, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca [26 x i32], align 16
  %10 = alloca [26 x i32], align 16
  %11 = alloca [26 x i32], align 16
  %12 = alloca [26 x i32], align 16
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca [26 x [26 x i8]], align 16
  %22 = alloca i8, align 1
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca [26 x i32], align 16
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca %"class.std::vector.0", align 8
  %35 = alloca %"class.std::vector", align 8
  %36 = alloca [26 x i8], align 16
  %37 = alloca i8, align 1
  %38 = alloca i32, align 4
  %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.8", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.8", align 8
  %43 = alloca ptr, align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.8", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.8", align 8
  %46 = alloca %"class.std::vector", align 8
  %47 = alloca ptr, align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %50 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  %51 = load ptr, ptr @stdin, align 8, !tbaa !5
  %52 = call ptr @freopen(ptr noundef @.str, ptr noundef @.str.1, ptr noundef %51)
  %53 = load ptr, ptr @stdout, align 8, !tbaa !5
  %54 = call ptr @freopen(ptr noundef @.str.2, ptr noundef @.str.3, ptr noundef %53)
  %55 = call noundef zeroext i1 @_ZNSt8ios_base15sync_with_stdioEb(i1 noundef zeroext false)
  %56 = load ptr, ptr @_ZSt3cin, align 8, !tbaa !9
  %57 = getelementptr i8, ptr %56, i64 -24
  %58 = load i64, ptr %57, align 8
  %59 = getelementptr inbounds i8, ptr @_ZSt3cin, i64 %58
  %60 = call noundef ptr @_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo(ptr noundef nonnull align 8 dereferenceable(264) %59, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #8
  %61 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %2)
  %62 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull align 4 dereferenceable(4) %3)
  %63 = load i32, ptr %2, align 4, !tbaa !11
  %64 = zext i32 %63 to i64
  %65 = call ptr @llvm.stacksave.p0()
  store ptr %65, ptr %4, align 8
  %66 = alloca %"class.std::__cxx11::basic_string", i64 %64, align 16
  store i64 %64, ptr %5, align 8
  %67 = icmp eq i64 %64, 0
  br i1 %67, label %74, label %68

68:                                               ; preds = %0
  %69 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %64
  br label %70

70:                                               ; preds = %70, %68
  %71 = phi ptr [ %66, %68 ], [ %72, %70 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  %72 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %71, i64 1
  %73 = icmp eq ptr %72, %69
  br i1 %73, label %74, label %70

74:                                               ; preds = %70, %0
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  store i32 0, ptr %6, align 4, !tbaa !11
  br label %75

75:                                               ; preds = %86, %74
  %76 = load i32, ptr %6, align 4, !tbaa !11
  %77 = load i32, ptr %2, align 4, !tbaa !11
  %78 = icmp slt i32 %76, %77
  br i1 %78, label %80, label %79

79:                                               ; preds = %75
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %93

80:                                               ; preds = %75
  %81 = load i32, ptr %6, align 4, !tbaa !11
  %82 = sext i32 %81 to i64
  %83 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %82
  %84 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %85 unwind label %89

85:                                               ; preds = %80
  br label %86

86:                                               ; preds = %85
  %87 = load i32, ptr %6, align 4, !tbaa !11
  %88 = add nsw i32 %87, 1
  store i32 %88, ptr %6, align 4, !tbaa !11
  br label %75, !llvm.loop !13

89:                                               ; preds = %80
  %90 = landingpad { ptr, i32 }
          cleanup
  %91 = extractvalue { ptr, i32 } %90, 0
  store ptr %91, ptr %7, align 8
  %92 = extractvalue { ptr, i32 } %90, 1
  store i32 %92, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %542

93:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 104, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr %12) #8
  %94 = getelementptr inbounds [26 x i32], ptr %9, i64 0, i64 0
  %95 = getelementptr inbounds [26 x i32], ptr %9, i64 0, i64 0
  %96 = getelementptr inbounds i32, ptr %95, i64 26
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  store i32 2147483647, ptr %13, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef %94, ptr noundef %96, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %97 unwind label %115

97:                                               ; preds = %93
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  %98 = getelementptr inbounds [26 x i32], ptr %10, i64 0, i64 0
  %99 = getelementptr inbounds [26 x i32], ptr %10, i64 0, i64 0
  %100 = getelementptr inbounds i32, ptr %99, i64 26
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  store i32 2147483647, ptr %14, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef %98, ptr noundef %100, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %101 unwind label %119

101:                                              ; preds = %97
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  %102 = getelementptr inbounds [26 x i32], ptr %11, i64 0, i64 0
  %103 = getelementptr inbounds [26 x i32], ptr %11, i64 0, i64 0
  %104 = getelementptr inbounds i32, ptr %103, i64 26
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  store i32 -1, ptr %15, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef %102, ptr noundef %104, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %105 unwind label %123

105:                                              ; preds = %101
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  %106 = getelementptr inbounds [26 x i32], ptr %12, i64 0, i64 0
  %107 = getelementptr inbounds [26 x i32], ptr %12, i64 0, i64 0
  %108 = getelementptr inbounds i32, ptr %107, i64 26
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  store i32 -1, ptr %16, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef %106, ptr noundef %108, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %109 unwind label %127

109:                                              ; preds = %105
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 0, ptr %17, align 4, !tbaa !11
  br label %110

110:                                              ; preds = %209, %109
  %111 = load i32, ptr %17, align 4, !tbaa !11
  %112 = load i32, ptr %2, align 4, !tbaa !11
  %113 = icmp slt i32 %111, %112
  br i1 %113, label %131, label %114

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

115:                                              ; preds = %93
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %7, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %534

119:                                              ; preds = %97
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %7, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %534

123:                                              ; preds = %101
  %124 = landingpad { ptr, i32 }
          cleanup
  %125 = extractvalue { ptr, i32 } %124, 0
  store ptr %125, ptr %7, align 8
  %126 = extractvalue { ptr, i32 } %124, 1
  store i32 %126, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %534

127:                                              ; preds = %105
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %7, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %534

131:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  store i32 0, ptr %19, align 4, !tbaa !11
  br label %132

132:                                              ; preds = %200, %131
  %133 = load i32, ptr %19, align 4, !tbaa !11
  %134 = load i32, ptr %3, align 4, !tbaa !11
  %135 = icmp slt i32 %133, %134
  br i1 %135, label %137, label %136

136:                                              ; preds = %132
  store i32 8, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %208

137:                                              ; preds = %132
  %138 = load i32, ptr %17, align 4, !tbaa !11
  %139 = sext i32 %138 to i64
  %140 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %139
  %141 = load i32, ptr %19, align 4, !tbaa !11
  %142 = sext i32 %141 to i64
  %143 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %140, i64 noundef %142)
          to label %144 unwind label %149

144:                                              ; preds = %137
  %145 = load i8, ptr %143, align 1, !tbaa !15
  %146 = sext i8 %145 to i32
  %147 = icmp eq i32 %146, 46
  br i1 %147, label %148, label %153

148:                                              ; preds = %144
  br label %200

149:                                              ; preds = %137
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %7, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %8, align 4
  br label %207

153:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  %154 = load i32, ptr %17, align 4, !tbaa !11
  %155 = sext i32 %154 to i64
  %156 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %155
  %157 = load i32, ptr %19, align 4, !tbaa !11
  %158 = sext i32 %157 to i64
  %159 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %156, i64 noundef %158)
          to label %160 unwind label %203

160:                                              ; preds = %153
  %161 = load i8, ptr %159, align 1, !tbaa !15
  %162 = sext i8 %161 to i32
  %163 = sub nsw i32 %162, 65
  store i32 %163, ptr %20, align 4, !tbaa !11
  %164 = load i32, ptr %20, align 4, !tbaa !11
  %165 = sext i32 %164 to i64
  %166 = getelementptr inbounds [26 x i32], ptr %9, i64 0, i64 %165
  %167 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %166, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %168 unwind label %203

168:                                              ; preds = %160
  %169 = load i32, ptr %167, align 4, !tbaa !11
  %170 = load i32, ptr %20, align 4, !tbaa !11
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds [26 x i32], ptr %9, i64 0, i64 %171
  store i32 %169, ptr %172, align 4, !tbaa !11
  %173 = load i32, ptr %20, align 4, !tbaa !11
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds [26 x i32], ptr %11, i64 0, i64 %174
  %176 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %175, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %177 unwind label %203

177:                                              ; preds = %168
  %178 = load i32, ptr %176, align 4, !tbaa !11
  %179 = load i32, ptr %20, align 4, !tbaa !11
  %180 = sext i32 %179 to i64
  %181 = getelementptr inbounds [26 x i32], ptr %11, i64 0, i64 %180
  store i32 %178, ptr %181, align 4, !tbaa !11
  %182 = load i32, ptr %20, align 4, !tbaa !11
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds [26 x i32], ptr %10, i64 0, i64 %183
  %185 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %184, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %186 unwind label %203

186:                                              ; preds = %177
  %187 = load i32, ptr %185, align 4, !tbaa !11
  %188 = load i32, ptr %20, align 4, !tbaa !11
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds [26 x i32], ptr %10, i64 0, i64 %189
  store i32 %187, ptr %190, align 4, !tbaa !11
  %191 = load i32, ptr %20, align 4, !tbaa !11
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds [26 x i32], ptr %12, i64 0, i64 %192
  %194 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %193, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %195 unwind label %203

195:                                              ; preds = %186
  %196 = load i32, ptr %194, align 4, !tbaa !11
  %197 = load i32, ptr %20, align 4, !tbaa !11
  %198 = sext i32 %197 to i64
  %199 = getelementptr inbounds [26 x i32], ptr %12, i64 0, i64 %198
  store i32 %196, ptr %199, align 4, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %200

200:                                              ; preds = %195, %148
  %201 = load i32, ptr %19, align 4, !tbaa !11
  %202 = add nsw i32 %201, 1
  store i32 %202, ptr %19, align 4, !tbaa !11
  br label %132, !llvm.loop !16

203:                                              ; preds = %186, %177, %168, %160, %153
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %7, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %207

207:                                              ; preds = %203, %149
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %534

208:                                              ; preds = %136
  br label %209

209:                                              ; preds = %208
  %210 = load i32, ptr %17, align 4, !tbaa !11
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr %17, align 4, !tbaa !11
  br label %110, !llvm.loop !17

212:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 676, ptr %21) #8
  %213 = getelementptr inbounds [26 x [26 x i8]], ptr %21, i64 0, i64 0
  %214 = getelementptr inbounds [26 x i8], ptr %213, i64 0, i64 0
  %215 = getelementptr inbounds [26 x [26 x i8]], ptr %21, i64 0, i64 25
  %216 = getelementptr inbounds [26 x i8], ptr %215, i64 0, i64 0
  %217 = getelementptr inbounds i8, ptr %216, i64 26
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #8
  store i8 0, ptr %22, align 1, !tbaa !18
  invoke void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef %214, ptr noundef %217, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %218 unwind label %223

218:                                              ; preds = %212
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  store i32 0, ptr %23, align 4, !tbaa !11
  br label %219

219:                                              ; preds = %363, %218
  %220 = load i32, ptr %23, align 4, !tbaa !11
  %221 = icmp slt i32 %220, 26
  br i1 %221, label %227, label %222

222:                                              ; preds = %219
  store i32 11, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %367

223:                                              ; preds = %212
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %7, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  br label %533

227:                                              ; preds = %219
  %228 = load i32, ptr %23, align 4, !tbaa !11
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds [26 x i32], ptr %11, i64 0, i64 %229
  %231 = load i32, ptr %230, align 4, !tbaa !11
  %232 = icmp eq i32 %231, -1
  br i1 %232, label %233, label %234

233:                                              ; preds = %227
  br label %363

234:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %235 = load i32, ptr %23, align 4, !tbaa !11
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds [26 x i32], ptr %9, i64 0, i64 %236
  %238 = load i32, ptr %237, align 4, !tbaa !11
  store i32 %238, ptr %24, align 4, !tbaa !11
  br label %239

239:                                              ; preds = %286, %234
  %240 = load i32, ptr %24, align 4, !tbaa !11
  %241 = load i32, ptr %23, align 4, !tbaa !11
  %242 = sext i32 %241 to i64
  %243 = getelementptr inbounds [26 x i32], ptr %11, i64 0, i64 %242
  %244 = load i32, ptr %243, align 4, !tbaa !11
  %245 = icmp sle i32 %240, %244
  br i1 %245, label %247, label %246

246:                                              ; preds = %239
  store i32 14, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %298

247:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %248 = load i32, ptr %24, align 4, !tbaa !11
  %249 = sext i32 %248 to i64
  %250 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %249
  %251 = load i32, ptr %23, align 4, !tbaa !11
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds [26 x i32], ptr %10, i64 0, i64 %252
  %254 = load i32, ptr %253, align 4, !tbaa !11
  %255 = sext i32 %254 to i64
  %256 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %250, i64 noundef %255)
          to label %257 unwind label %289

257:                                              ; preds = %247
  %258 = load i8, ptr %256, align 1, !tbaa !15
  %259 = sext i8 %258 to i32
  %260 = sub nsw i32 %259, 65
  store i32 %260, ptr %25, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %261 = load i32, ptr %24, align 4, !tbaa !11
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %262
  %264 = load i32, ptr %23, align 4, !tbaa !11
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds [26 x i32], ptr %12, i64 0, i64 %265
  %267 = load i32, ptr %266, align 4, !tbaa !11
  %268 = sext i32 %267 to i64
  %269 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %263, i64 noundef %268)
          to label %270 unwind label %293

270:                                              ; preds = %257
  %271 = load i8, ptr %269, align 1, !tbaa !15
  %272 = sext i8 %271 to i32
  %273 = sub nsw i32 %272, 65
  store i32 %273, ptr %26, align 4, !tbaa !11
  %274 = load i32, ptr %25, align 4, !tbaa !11
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds [26 x [26 x i8]], ptr %21, i64 0, i64 %275
  %277 = load i32, ptr %23, align 4, !tbaa !11
  %278 = sext i32 %277 to i64
  %279 = getelementptr inbounds [26 x i8], ptr %276, i64 0, i64 %278
  store i8 1, ptr %279, align 1, !tbaa !18
  %280 = load i32, ptr %26, align 4, !tbaa !11
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds [26 x [26 x i8]], ptr %21, i64 0, i64 %281
  %283 = load i32, ptr %23, align 4, !tbaa !11
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds [26 x i8], ptr %282, i64 0, i64 %284
  store i8 1, ptr %285, align 1, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %286

286:                                              ; preds = %270
  %287 = load i32, ptr %24, align 4, !tbaa !11
  %288 = add nsw i32 %287, 1
  store i32 %288, ptr %24, align 4, !tbaa !11
  br label %239, !llvm.loop !20

289:                                              ; preds = %247
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %7, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %8, align 4
  br label %297

293:                                              ; preds = %257
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %7, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %297

297:                                              ; preds = %293, %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %366

298:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %299 = load i32, ptr %23, align 4, !tbaa !11
  %300 = sext i32 %299 to i64
  %301 = getelementptr inbounds [26 x i32], ptr %10, i64 0, i64 %300
  %302 = load i32, ptr %301, align 4, !tbaa !11
  store i32 %302, ptr %27, align 4, !tbaa !11
  br label %303

303:                                              ; preds = %350, %298
  %304 = load i32, ptr %27, align 4, !tbaa !11
  %305 = load i32, ptr %23, align 4, !tbaa !11
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds [26 x i32], ptr %12, i64 0, i64 %306
  %308 = load i32, ptr %307, align 4, !tbaa !11
  %309 = icmp sle i32 %304, %308
  br i1 %309, label %311, label %310

310:                                              ; preds = %303
  store i32 17, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %362

311:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %312 = load i32, ptr %23, align 4, !tbaa !11
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds [26 x i32], ptr %9, i64 0, i64 %313
  %315 = load i32, ptr %314, align 4, !tbaa !11
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %316
  %318 = load i32, ptr %27, align 4, !tbaa !11
  %319 = sext i32 %318 to i64
  %320 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %317, i64 noundef %319)
          to label %321 unwind label %353

321:                                              ; preds = %311
  %322 = load i8, ptr %320, align 1, !tbaa !15
  %323 = sext i8 %322 to i32
  %324 = sub nsw i32 %323, 65
  store i32 %324, ptr %28, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %325 = load i32, ptr %23, align 4, !tbaa !11
  %326 = sext i32 %325 to i64
  %327 = getelementptr inbounds [26 x i32], ptr %11, i64 0, i64 %326
  %328 = load i32, ptr %327, align 4, !tbaa !11
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %329
  %331 = load i32, ptr %27, align 4, !tbaa !11
  %332 = sext i32 %331 to i64
  %333 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %330, i64 noundef %332)
          to label %334 unwind label %357

334:                                              ; preds = %321
  %335 = load i8, ptr %333, align 1, !tbaa !15
  %336 = sext i8 %335 to i32
  %337 = sub nsw i32 %336, 65
  store i32 %337, ptr %29, align 4, !tbaa !11
  %338 = load i32, ptr %28, align 4, !tbaa !11
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds [26 x [26 x i8]], ptr %21, i64 0, i64 %339
  %341 = load i32, ptr %23, align 4, !tbaa !11
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds [26 x i8], ptr %340, i64 0, i64 %342
  store i8 1, ptr %343, align 1, !tbaa !18
  %344 = load i32, ptr %29, align 4, !tbaa !11
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds [26 x [26 x i8]], ptr %21, i64 0, i64 %345
  %347 = load i32, ptr %23, align 4, !tbaa !11
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds [26 x i8], ptr %346, i64 0, i64 %348
  store i8 1, ptr %349, align 1, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %350

350:                                              ; preds = %334
  %351 = load i32, ptr %27, align 4, !tbaa !11
  %352 = add nsw i32 %351, 1
  store i32 %352, ptr %27, align 4, !tbaa !11
  br label %303, !llvm.loop !21

353:                                              ; preds = %311
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %7, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %8, align 4
  br label %361

357:                                              ; preds = %321
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %7, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %361

361:                                              ; preds = %357, %353
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %366

362:                                              ; preds = %310
  br label %363

363:                                              ; preds = %362, %233
  %364 = load i32, ptr %23, align 4, !tbaa !11
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr %23, align 4, !tbaa !11
  br label %219, !llvm.loop !22

366:                                              ; preds = %361, %297
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %533

367:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 104, ptr %30) #8
  %368 = getelementptr inbounds [26 x i32], ptr %30, i64 0, i64 0
  %369 = getelementptr inbounds [26 x i32], ptr %30, i64 0, i64 0
  %370 = getelementptr inbounds i32, ptr %369, i64 26
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  store i32 0, ptr %31, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef %368, ptr noundef %370, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %371 unwind label %376

371:                                              ; preds = %367
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  store i32 0, ptr %32, align 4, !tbaa !11
  br label %372

372:                                              ; preds = %420, %371
  %373 = load i32, ptr %32, align 4, !tbaa !11
  %374 = icmp slt i32 %373, 26
  br i1 %374, label %380, label %375

375:                                              ; preds = %372
  store i32 20, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %423

376:                                              ; preds = %367
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %7, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %532

380:                                              ; preds = %372
  %381 = load i32, ptr %32, align 4, !tbaa !11
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds [26 x i32], ptr %11, i64 0, i64 %382
  %384 = load i32, ptr %383, align 4, !tbaa !11
  %385 = icmp eq i32 %384, -1
  br i1 %385, label %386, label %390

386:                                              ; preds = %380
  %387 = load i32, ptr %32, align 4, !tbaa !11
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds [26 x i32], ptr %30, i64 0, i64 %388
  store i32 2147483647, ptr %389, align 4, !tbaa !11
  br label %420

390:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  store i32 0, ptr %33, align 4, !tbaa !11
  br label %391

391:                                              ; preds = %416, %390
  %392 = load i32, ptr %33, align 4, !tbaa !11
  %393 = icmp slt i32 %392, 26
  br i1 %393, label %395, label %394

394:                                              ; preds = %391
  store i32 23, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %419

395:                                              ; preds = %391
  %396 = load i32, ptr %32, align 4, !tbaa !11
  %397 = load i32, ptr %33, align 4, !tbaa !11
  %398 = icmp eq i32 %396, %397
  br i1 %398, label %399, label %400

399:                                              ; preds = %395
  br label %416

400:                                              ; preds = %395
  %401 = load i32, ptr %33, align 4, !tbaa !11
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds [26 x [26 x i8]], ptr %21, i64 0, i64 %402
  %404 = load i32, ptr %32, align 4, !tbaa !11
  %405 = sext i32 %404 to i64
  %406 = getelementptr inbounds [26 x i8], ptr %403, i64 0, i64 %405
  %407 = load i8, ptr %406, align 1, !tbaa !18, !range !23, !noundef !24
  %408 = trunc i8 %407 to i1
  br i1 %408, label %409, label %415

409:                                              ; preds = %400
  %410 = load i32, ptr %32, align 4, !tbaa !11
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds [26 x i32], ptr %30, i64 0, i64 %411
  %413 = load i32, ptr %412, align 4, !tbaa !11
  %414 = add nsw i32 %413, 1
  store i32 %414, ptr %412, align 4, !tbaa !11
  br label %415

415:                                              ; preds = %409, %400
  br label %416

416:                                              ; preds = %415, %399
  %417 = load i32, ptr %33, align 4, !tbaa !11
  %418 = add nsw i32 %417, 1
  store i32 %418, ptr %33, align 4, !tbaa !11
  br label %391, !llvm.loop !25

419:                                              ; preds = %394
  br label %420

420:                                              ; preds = %419, %386
  %421 = load i32, ptr %32, align 4, !tbaa !11
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr %32, align 4, !tbaa !11
  br label %372, !llvm.loop !26

423:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #8
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #8
  call void @llvm.lifetime.start.p0(i64 26, ptr %36) #8
  %424 = getelementptr inbounds [26 x i8], ptr %36, i64 0, i64 0
  %425 = getelementptr inbounds [26 x i8], ptr %36, i64 0, i64 0
  %426 = getelementptr inbounds i8, ptr %425, i64 26
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #8
  store i8 0, ptr %37, align 1, !tbaa !18
  invoke void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef %424, ptr noundef %426, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %427 unwind label %437

427:                                              ; preds = %423
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  %428 = load i32, ptr %2, align 4, !tbaa !11
  %429 = load i32, ptr %3, align 4, !tbaa !11
  invoke void @_Z7topSortiiRA26_A26_bRSt6vectorIiSaIiEERA26_iRS_RS2_IS4_SaIS4_EE(i32 noundef %428, i32 noundef %429, ptr noundef nonnull align 1 dereferenceable(676) %21, ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 4 dereferenceable(104) %30, ptr noundef nonnull align 1 dereferenceable(26) %36, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %430 unwind label %441

430:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  store i32 0, ptr %38, align 4, !tbaa !11
  br label %431

431:                                              ; preds = %461, %430
  %432 = load i32, ptr %38, align 4, !tbaa !11
  %433 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  %434 = trunc i64 %433 to i32
  %435 = icmp slt i32 %432, %434
  br i1 %435, label %445, label %436

436:                                              ; preds = %431
  store i32 26, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %468

437:                                              ; preds = %423
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %7, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  br label %531

441:                                              ; preds = %468, %427
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %7, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %8, align 4
  br label %531

445:                                              ; preds = %431
  %446 = load i32, ptr %38, align 4, !tbaa !11
  %447 = sext i32 %446 to i64
  %448 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %447) #8
  %449 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %448) #8
  %450 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %39, i32 0, i32 0
  store ptr %449, ptr %450, align 8
  %451 = load i32, ptr %38, align 4, !tbaa !11
  %452 = sext i32 %451 to i64
  %453 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %452) #8
  %454 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %453) #8
  %455 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %40, i32 0, i32 0
  store ptr %454, ptr %455, align 8
  %456 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %39, i32 0, i32 0
  %457 = load ptr, ptr %456, align 8
  %458 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %40, i32 0, i32 0
  %459 = load ptr, ptr %458, align 8
  invoke void @_ZSt7reverseIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEvT_S7_(ptr %457, ptr %459)
          to label %460 unwind label %464

460:                                              ; preds = %445
  br label %461

461:                                              ; preds = %460
  %462 = load i32, ptr %38, align 4, !tbaa !11
  %463 = add nsw i32 %462, 1
  store i32 %463, ptr %38, align 4, !tbaa !11
  br label %431, !llvm.loop !27

464:                                              ; preds = %445
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %7, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %531

468:                                              ; preds = %436
  %469 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  %470 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.8", ptr %41, i32 0, i32 0
  store ptr %469, ptr %470, align 8
  %471 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  %472 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.8", ptr %42, i32 0, i32 0
  store ptr %471, ptr %472, align 8
  %473 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.8", ptr %41, i32 0, i32 0
  %474 = load ptr, ptr %473, align 8
  %475 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.8", ptr %42, i32 0, i32 0
  %476 = load ptr, ptr %475, align 8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEEvT_S9_(ptr %474, ptr %476)
          to label %477 unwind label %441

477:                                              ; preds = %468
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  store ptr %34, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %478 = load ptr, ptr %43, align 8, !tbaa !5
  %479 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %478) #8
  %480 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.8", ptr %44, i32 0, i32 0
  store ptr %479, ptr %480, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %481 = load ptr, ptr %43, align 8, !tbaa !5
  %482 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %481) #8
  %483 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.8", ptr %45, i32 0, i32 0
  store ptr %482, ptr %483, align 8
  br label %484

484:                                              ; preds = %520, %477
  %485 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  br i1 %485, label %487, label %486

486:                                              ; preds = %484
  store i32 29, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %528

487:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #8
  %488 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef nonnull align 8 dereferenceable(24) %488)
          to label %489 unwind label %499

489:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  store ptr %46, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  %490 = load ptr, ptr %47, align 8, !tbaa !5
  %491 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %490) #8
  %492 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %48, i32 0, i32 0
  store ptr %491, ptr %492, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  %493 = load ptr, ptr %47, align 8, !tbaa !5
  %494 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %493) #8
  %495 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %49, i32 0, i32 0
  store ptr %494, ptr %495, align 8
  br label %496

496:                                              ; preds = %511, %489
  %497 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  br i1 %497, label %503, label %498

498:                                              ; preds = %496
  store i32 31, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %517

499:                                              ; preds = %487
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %7, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %8, align 4
  br label %527

503:                                              ; preds = %496
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %504 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  %505 = load i32, ptr %504, align 4, !tbaa !11
  store i32 %505, ptr %50, align 4, !tbaa !11
  %506 = load i32, ptr %50, align 4, !tbaa !11
  %507 = add nsw i32 %506, 65
  %508 = trunc i32 %507 to i8
  %509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i8 noundef signext %508)
          to label %510 unwind label %513

510:                                              ; preds = %503
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %511

511:                                              ; preds = %510
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  br label %496

513:                                              ; preds = %503
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %7, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %526

517:                                              ; preds = %498
  %518 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %519 unwind label %522

519:                                              ; preds = %517
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #8
  br label %520

520:                                              ; preds = %519
  %521 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  br label %484

522:                                              ; preds = %517
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %7, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %8, align 4
  br label %526

526:                                              ; preds = %522, %513
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  br label %527

527:                                              ; preds = %526, %499
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %531

528:                                              ; preds = %486
  store i32 0, ptr %1, align 4
  store i32 1, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 26, ptr %36) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #8
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 676, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %9) #8
  %529 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %64
  %530 = icmp eq ptr %66, %529
  br i1 %530, label %539, label %535

531:                                              ; preds = %527, %464, %441, %437
  call void @llvm.lifetime.end.p0(i64 26, ptr %36) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #8
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #8
  br label %532

532:                                              ; preds = %531, %376
  call void @llvm.lifetime.end.p0(i64 104, ptr %30) #8
  br label %533

533:                                              ; preds = %532, %366, %223
  call void @llvm.lifetime.end.p0(i64 676, ptr %21) #8
  br label %534

534:                                              ; preds = %533, %207, %127, %123, %119, %115
  call void @llvm.lifetime.end.p0(i64 104, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %9) #8
  br label %542

535:                                              ; preds = %535, %528
  %536 = phi ptr [ %529, %528 ], [ %537, %535 ]
  %537 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %536, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %537) #8
  %538 = icmp eq ptr %537, %66
  br i1 %538, label %539, label %535

539:                                              ; preds = %535, %528
  %540 = load ptr, ptr %4, align 8
  call void @llvm.stackrestore.p0(ptr %540)
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #8
  %541 = load i32, ptr %1, align 4
  ret i32 %541

542:                                              ; preds = %534, %89
  %543 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %66, i64 %64
  %544 = icmp eq ptr %66, %543
  br i1 %544, label %549, label %545

545:                                              ; preds = %545, %542
  %546 = phi ptr [ %543, %542 ], [ %547, %545 ]
  %547 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %546, i64 -1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %547) #8
  %548 = icmp eq ptr %547, %66
  br i1 %548, label %549, label %545

549:                                              ; preds = %545, %542
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #8
  br label %550

550:                                              ; preds = %549
  %551 = load ptr, ptr %7, align 8
  %552 = load i32, ptr %8, align 4
  %553 = insertvalue { ptr, i32 } poison, ptr %551, 0
  %554 = insertvalue { ptr, i32 } %553, i32 %552, 1
  resume { ptr, i32 } %554
}

declare ptr @freopen(ptr noundef, ptr noundef, ptr noundef) #3

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

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

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

; Function Attrs: nocallback nofree nosync nounwind willreturn
declare ptr @llvm.stacksave.p0() #5

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #4 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) #6

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 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)) #7

; 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)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) #6

; 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)) #4 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: nocallback nofree nosync nounwind willreturn
declare void @llvm.stackrestore.p0(ptr) #5

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { 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 #5 = { nocallback nofree nosync nounwind willreturn }
attributes #6 = { 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 #7 = { 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 #8 = { 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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!7, !7, i64 0}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = !{!19, !19, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = !{i8 0, i8 2}
!24 = !{}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !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::basic_istream" = type { ptr, i64, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<int>, std::allocator<std::vector<int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::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.__gnu_cxx::__normal_iterator.8" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@stdin = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@_ZSt3cin = external global %"class.std::basic_istream", align 8
@_ZSt4cout = external global %"class.std::basic_ostream", align 8

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z7topSortiiRA26_A26_bRSt6vectorIiSaIiEERA26_iRS_RS2_IS4_SaIS4_EE(i32 noundef, i32 noundef, ptr noundef nonnull align 1 dereferenceable(676), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(104), ptr noundef nonnull align 1 dereferenceable(26), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca [26 x i32], align 16
  %4 = alloca [26 x i32], align 16
  %5 = alloca [26 x i32], align 16
  %6 = alloca [26 x i32], align 16
  %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 i32, align 4
  %13 = alloca [26 x [26 x i8]], align 16
  %14 = alloca i8, align 1
  %15 = alloca [26 x i32], align 16
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::vector.0", align 8
  %18 = alloca %"class.std::vector", align 8
  %19 = alloca [26 x i8], align 16
  %20 = alloca i8, align 1
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.8", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.8", align 8
  %23 = alloca %"class.std::vector", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %26 = load ptr, ptr @stdin, align 8, !tbaa !5
  %27 = tail call ptr @freopen(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, ptr noundef %26)
  %28 = load ptr, ptr @stdout, align 8, !tbaa !5
  %29 = tail call ptr @freopen(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.3, ptr noundef %28)
  %30 = tail call noundef zeroext i1 @_ZNSt8ios_base15sync_with_stdioEb(i1 noundef zeroext false)
  %31 = load ptr, ptr @_ZSt3cin, align 8, !tbaa !9
  %32 = getelementptr i8, ptr %31, i64 -24
  %33 = load i64, ptr %32, align 8
  %34 = getelementptr inbounds i8, ptr @_ZSt3cin, i64 %33
  %35 = tail call noundef ptr @_ZNSt9basic_iosIcSt11char_traitsIcEE3tieEPSo(ptr noundef nonnull align 8 dereferenceable(264) %34, ptr noundef null)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %1) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #8
  %36 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 4 dereferenceable(4) %1)
  %37 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSirsERi(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 4 dereferenceable(4) %2)
  %38 = load i32, ptr %1, align 4, !tbaa !11
  %39 = zext i32 %38 to i64
  %40 = call ptr @llvm.stacksave.p0()
  %41 = alloca %"class.std::__cxx11::basic_string", i64 %39, align 16
  %42 = icmp eq i32 %38, 0
  br i1 %42, label %.loopexit99, label %43

43:                                               ; preds = %0
  %44 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %41, i64 %39
  br label %45

45:                                               ; preds = %45, %43
  %46 = phi ptr [ %41, %43 ], [ %47, %45 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  %47 = getelementptr inbounds i8, ptr %46, i64 32
  %48 = icmp eq ptr %47, %44
  br i1 %48, label %.loopexit99, label %45

.loopexit99:                                      ; preds = %45, %0
  %49 = load i32, ptr %1, align 4, !tbaa !11
  %50 = icmp sgt i32 %49, 0
  br i1 %50, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %54, %.loopexit99
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %3) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %6) #8
  %51 = getelementptr inbounds i8, ptr %3, i64 104
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #8
  store i32 2147483647, ptr %7, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef nonnull %3, ptr noundef nonnull %51, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %60 unwind label %72

.lr.ph:                                           ; preds = %.loopexit99, %54
  %indvars.iv = phi i64 [ %indvars.iv.next, %54 ], [ 0, %.loopexit99 ]
  %52 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %41, i64 %indvars.iv
  %53 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16) @_ZSt3cin, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %54 unwind label %58

54:                                               ; preds = %.lr.ph
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %55 = load i32, ptr %1, align 4, !tbaa !11
  %56 = sext i32 %55 to i64
  %57 = icmp slt i64 %indvars.iv.next, %56
  br i1 %57, label %.lr.ph, label %._crit_edge, !llvm.loop !13

58:                                               ; preds = %.lr.ph
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %455

60:                                               ; preds = %._crit_edge
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #8
  %61 = getelementptr inbounds i8, ptr %4, i64 104
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #8
  store i32 2147483647, ptr %8, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef nonnull %4, ptr noundef nonnull %61, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %62 unwind label %74

62:                                               ; preds = %60
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #8
  %63 = getelementptr inbounds i8, ptr %5, i64 104
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #8
  store i32 -1, ptr %9, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef nonnull %5, ptr noundef nonnull %63, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %64 unwind label %76

64:                                               ; preds = %62
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  %65 = getelementptr inbounds i8, ptr %6, i64 104
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8
  store i32 -1, ptr %10, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef nonnull %6, ptr noundef nonnull %65, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %66 unwind label %78

66:                                               ; preds = %64
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  store i32 0, ptr %11, align 4, !tbaa !11
  %67 = load i32, ptr %1, align 4, !tbaa !11
  %68 = icmp sgt i32 %67, 0
  %69 = load i32, ptr %2, align 4
  %70 = icmp sgt i32 %69, 0
  %or.cond = select i1 %68, i1 %70, i1 false
  br i1 %or.cond, label %.lr.ph106.split, label %._crit_edge107

._crit_edge107:                                   ; preds = %._crit_edge104, %66
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 676, ptr nonnull %13) #8
  %71 = getelementptr inbounds i8, ptr %13, i64 676
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #8
  store i8 0, ptr %14, align 1, !tbaa !15
  invoke void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef nonnull %13, ptr noundef nonnull %71, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %123 unwind label %126

72:                                               ; preds = %._crit_edge
  %73 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #8
  br label %451

74:                                               ; preds = %60
  %75 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #8
  br label %451

76:                                               ; preds = %62
  %77 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  br label %451

78:                                               ; preds = %64
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  br label %451

.lr.ph106.split:                                  ; preds = %66, %._crit_edge104
  %80 = phi i32 [ %84, %._crit_edge104 ], [ %67, %66 ]
  %81 = phi i32 [ %87, %._crit_edge104 ], [ 0, %66 ]
  %82 = phi i32 [ %86, %._crit_edge104 ], [ %69, %66 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #8
  store i32 0, ptr %12, align 4, !tbaa !11
  %83 = icmp sgt i32 %82, 0
  br i1 %83, label %.lr.ph103, label %._crit_edge104

._crit_edge104.loopexit:                          ; preds = %118
  %.pre = load i32, ptr %11, align 4, !tbaa !11
  %.pre150 = load i32, ptr %1, align 4, !tbaa !11
  br label %._crit_edge104

._crit_edge104:                                   ; preds = %._crit_edge104.loopexit, %.lr.ph106.split
  %84 = phi i32 [ %.pre150, %._crit_edge104.loopexit ], [ %80, %.lr.ph106.split ]
  %85 = phi i32 [ %.pre, %._crit_edge104.loopexit ], [ %81, %.lr.ph106.split ]
  %86 = phi i32 [ %121, %._crit_edge104.loopexit ], [ %82, %.lr.ph106.split ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #8
  %87 = add nsw i32 %85, 1
  store i32 %87, ptr %11, align 4, !tbaa !11
  %88 = icmp slt i32 %87, %84
  br i1 %88, label %.lr.ph106.split, label %._crit_edge107, !llvm.loop !17

.lr.ph103:                                        ; preds = %.lr.ph106.split, %118
  %storemerge90101 = phi i32 [ %120, %118 ], [ 0, %.lr.ph106.split ]
  %89 = load i32, ptr %11, align 4, !tbaa !11
  %90 = sext i32 %89 to i64
  %91 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %41, i64 %90
  %92 = sext i32 %storemerge90101 to i64
  %93 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %91, i64 noundef %92)
  %94 = load i8, ptr %93, align 1, !tbaa !19
  %95 = icmp eq i8 %94, 46
  br i1 %95, label %118, label %96

96:                                               ; preds = %.lr.ph103
  %97 = load i32, ptr %11, align 4, !tbaa !11
  %98 = sext i32 %97 to i64
  %99 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %41, i64 %98
  %100 = load i32, ptr %12, align 4, !tbaa !11
  %101 = sext i32 %100 to i64
  %102 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %99, i64 noundef %101)
  %103 = load i8, ptr %102, align 1, !tbaa !19
  %104 = sext i8 %103 to i64
  %105 = add nsw i64 %104, -65
  %106 = getelementptr inbounds [26 x i32], ptr %3, i64 0, i64 %105
  %107 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %106, ptr noundef nonnull align 4 dereferenceable(4) %11)
  %108 = load i32, ptr %107, align 4, !tbaa !11
  store i32 %108, ptr %106, align 4, !tbaa !11
  %109 = getelementptr inbounds [26 x i32], ptr %5, i64 0, i64 %105
  %110 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %109, ptr noundef nonnull align 4 dereferenceable(4) %11)
  %111 = load i32, ptr %110, align 4, !tbaa !11
  store i32 %111, ptr %109, align 4, !tbaa !11
  %112 = getelementptr inbounds [26 x i32], ptr %4, i64 0, i64 %105
  %113 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3minIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %112, ptr noundef nonnull align 4 dereferenceable(4) %12)
  %114 = load i32, ptr %113, align 4, !tbaa !11
  store i32 %114, ptr %112, align 4, !tbaa !11
  %115 = getelementptr inbounds [26 x i32], ptr %6, i64 0, i64 %105
  %116 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %115, ptr noundef nonnull align 4 dereferenceable(4) %12)
  %117 = load i32, ptr %116, align 4, !tbaa !11
  store i32 %117, ptr %115, align 4, !tbaa !11
  br label %118

118:                                              ; preds = %.lr.ph103, %96
  %119 = load i32, ptr %12, align 4, !tbaa !11
  %120 = add nsw i32 %119, 1
  store i32 %120, ptr %12, align 4, !tbaa !11
  %121 = load i32, ptr %2, align 4, !tbaa !11
  %122 = icmp slt i32 %120, %121
  br i1 %122, label %.lr.ph103, label %._crit_edge104.loopexit, !llvm.loop !20

123:                                              ; preds = %._crit_edge107
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  br label %128

124:                                              ; preds = %.loopexit98
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %15) #8
  %125 = getelementptr inbounds i8, ptr %15, i64 104
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #8
  store i32 0, ptr %16, align 4, !tbaa !11
  invoke void @_ZSt4fillIPiiEvT_S1_RKT0_(ptr noundef nonnull %15, ptr noundef nonnull %125, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %179 unwind label %181

126:                                              ; preds = %._crit_edge107
  %127 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #8
  br label %450

128:                                              ; preds = %123, %.loopexit98
  %indvars.iv136 = phi i64 [ 0, %123 ], [ %indvars.iv.next137, %.loopexit98 ]
  %129 = getelementptr inbounds [26 x i32], ptr %5, i64 0, i64 %indvars.iv136
  %130 = load i32, ptr %129, align 4, !tbaa !11
  %131 = icmp eq i32 %130, -1
  br i1 %131, label %.loopexit98, label %132

132:                                              ; preds = %128
  %133 = getelementptr inbounds [26 x i32], ptr %3, i64 0, i64 %indvars.iv136
  %134 = load i32, ptr %133, align 4, !tbaa !11
  %.not108 = icmp sgt i32 %134, %130
  br i1 %.not108, label %._crit_edge112, label %.lr.ph111

.lr.ph111:                                        ; preds = %132
  %135 = getelementptr inbounds [26 x i32], ptr %4, i64 0, i64 %indvars.iv136
  %136 = getelementptr inbounds [26 x i32], ptr %6, i64 0, i64 %indvars.iv136
  %137 = sext i32 %134 to i64
  br label %143

._crit_edge112:                                   ; preds = %143, %132
  %138 = getelementptr inbounds [26 x i32], ptr %4, i64 0, i64 %indvars.iv136
  %139 = load i32, ptr %138, align 4, !tbaa !11
  %140 = getelementptr inbounds [26 x i32], ptr %6, i64 0, i64 %indvars.iv136
  %141 = load i32, ptr %140, align 4, !tbaa !11
  %.not89113 = icmp sgt i32 %139, %141
  br i1 %.not89113, label %.loopexit98, label %.lr.ph116.preheader

.lr.ph116.preheader:                              ; preds = %._crit_edge112
  %142 = sext i32 %139 to i64
  br label %.lr.ph116

143:                                              ; preds = %.lr.ph111, %143
  %indvars.iv130 = phi i64 [ %137, %.lr.ph111 ], [ %indvars.iv.next131, %143 ]
  %144 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %41, i64 %indvars.iv130
  %145 = load i32, ptr %135, align 4, !tbaa !11
  %146 = sext i32 %145 to i64
  %147 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %144, i64 noundef %146)
  %148 = load i8, ptr %147, align 1, !tbaa !19
  %149 = sext i8 %148 to i64
  %150 = add nsw i64 %149, -65
  %151 = load i32, ptr %136, align 4, !tbaa !11
  %152 = sext i32 %151 to i64
  %153 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %144, i64 noundef %152)
  %154 = load i8, ptr %153, align 1, !tbaa !19
  %155 = sext i8 %154 to i64
  %156 = add nsw i64 %155, -65
  %157 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 %150, i64 %indvars.iv136
  store i8 1, ptr %157, align 1, !tbaa !15
  %158 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 %156, i64 %indvars.iv136
  store i8 1, ptr %158, align 1, !tbaa !15
  %indvars.iv.next131 = add nsw i64 %indvars.iv130, 1
  %159 = load i32, ptr %129, align 4, !tbaa !11
  %160 = sext i32 %159 to i64
  %.not.not = icmp slt i64 %indvars.iv130, %160
  br i1 %.not.not, label %143, label %._crit_edge112, !llvm.loop !21

.lr.ph116:                                        ; preds = %.lr.ph116.preheader, %.lr.ph116
  %indvars.iv133 = phi i64 [ %142, %.lr.ph116.preheader ], [ %indvars.iv.next134, %.lr.ph116 ]
  %161 = load i32, ptr %133, align 4, !tbaa !11
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %41, i64 %162
  %164 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %163, i64 noundef %indvars.iv133)
  %165 = load i8, ptr %164, align 1, !tbaa !19
  %166 = sext i8 %165 to i64
  %167 = add nsw i64 %166, -65
  %168 = load i32, ptr %129, align 4, !tbaa !11
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %41, i64 %169
  %171 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %170, i64 noundef %indvars.iv133)
  %172 = load i8, ptr %171, align 1, !tbaa !19
  %173 = sext i8 %172 to i64
  %174 = add nsw i64 %173, -65
  %175 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 %167, i64 %indvars.iv136
  store i8 1, ptr %175, align 1, !tbaa !15
  %176 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 %174, i64 %indvars.iv136
  store i8 1, ptr %176, align 1, !tbaa !15
  %indvars.iv.next134 = add nsw i64 %indvars.iv133, 1
  %177 = load i32, ptr %140, align 4, !tbaa !11
  %178 = sext i32 %177 to i64
  %.not89.not = icmp slt i64 %indvars.iv133, %178
  br i1 %.not89.not, label %.lr.ph116, label %.loopexit98, !llvm.loop !22

.loopexit98:                                      ; preds = %.lr.ph116, %._crit_edge112, %128
  %indvars.iv.next137 = add nuw nsw i64 %indvars.iv136, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next137, 26
  br i1 %exitcond.not, label %124, label %128, !llvm.loop !23

179:                                              ; preds = %124
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #8
  br label %183

.loopexit97.thread:                               ; preds = %388, %.loopexit97
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #8
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #8
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.start.p0(i64 26, ptr nonnull %19) #8
  %180 = getelementptr inbounds i8, ptr %19, i64 26
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #8
  store i8 0, ptr %20, align 1, !tbaa !15
  invoke void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef nonnull %19, ptr noundef nonnull %180, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %396 unwind label %404

181:                                              ; preds = %124
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #8
  br label %449

183:                                              ; preds = %179, %.loopexit97
  %indvars.iv143 = phi i64 [ 0, %179 ], [ %indvars.iv.next144, %.loopexit97 ]
  %184 = getelementptr inbounds [26 x i32], ptr %5, i64 0, i64 %indvars.iv143
  %185 = load i32, ptr %184, align 4, !tbaa !11
  %186 = icmp eq i32 %185, -1
  %187 = getelementptr inbounds [26 x i32], ptr %15, i64 0, i64 %indvars.iv143
  br i1 %186, label %.loopexit97.sink.split, label %.preheader96

.preheader96:                                     ; preds = %183
  %188 = icmp eq i64 %indvars.iv143, 0
  br i1 %188, label %.thread, label %189

189:                                              ; preds = %.preheader96
  %190 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 0, i64 %indvars.iv143
  %191 = load i8, ptr %190, align 1, !tbaa !15, !range !24, !noundef !25
  %192 = trunc nuw i8 %191 to i1
  br i1 %192, label %193, label %196

193:                                              ; preds = %189
  %194 = load i32, ptr %187, align 4, !tbaa !11
  %195 = add nsw i32 %194, 1
  store i32 %195, ptr %187, align 4, !tbaa !11
  br label %196

196:                                              ; preds = %189, %193
  %197 = icmp eq i64 %indvars.iv143, 1
  br i1 %197, label %.thread151, label %.thread

.thread:                                          ; preds = %.preheader96, %196
  %198 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 1, i64 %indvars.iv143
  %199 = load i8, ptr %198, align 1, !tbaa !15, !range !24, !noundef !25
  %200 = trunc nuw i8 %199 to i1
  br i1 %200, label %201, label %204

201:                                              ; preds = %.thread
  %202 = load i32, ptr %187, align 4, !tbaa !11
  %203 = add nsw i32 %202, 1
  store i32 %203, ptr %187, align 4, !tbaa !11
  br label %204

204:                                              ; preds = %201, %.thread
  %205 = icmp eq i64 %indvars.iv143, 2
  br i1 %205, label %.thread152, label %.thread151

.thread151:                                       ; preds = %196, %204
  %206 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 2, i64 %indvars.iv143
  %207 = load i8, ptr %206, align 1, !tbaa !15, !range !24, !noundef !25
  %208 = trunc nuw i8 %207 to i1
  br i1 %208, label %209, label %212

209:                                              ; preds = %.thread151
  %210 = load i32, ptr %187, align 4, !tbaa !11
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr %187, align 4, !tbaa !11
  br label %212

212:                                              ; preds = %209, %.thread151
  %213 = icmp eq i64 %indvars.iv143, 3
  br i1 %213, label %.thread153, label %.thread152

.thread152:                                       ; preds = %204, %212
  %214 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 3, i64 %indvars.iv143
  %215 = load i8, ptr %214, align 1, !tbaa !15, !range !24, !noundef !25
  %216 = trunc nuw i8 %215 to i1
  br i1 %216, label %217, label %220

217:                                              ; preds = %.thread152
  %218 = load i32, ptr %187, align 4, !tbaa !11
  %219 = add nsw i32 %218, 1
  store i32 %219, ptr %187, align 4, !tbaa !11
  br label %220

220:                                              ; preds = %217, %.thread152
  %221 = icmp eq i64 %indvars.iv143, 4
  br i1 %221, label %.thread154, label %.thread153

.thread153:                                       ; preds = %212, %220
  %222 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 4, i64 %indvars.iv143
  %223 = load i8, ptr %222, align 1, !tbaa !15, !range !24, !noundef !25
  %224 = trunc nuw i8 %223 to i1
  br i1 %224, label %225, label %228

225:                                              ; preds = %.thread153
  %226 = load i32, ptr %187, align 4, !tbaa !11
  %227 = add nsw i32 %226, 1
  store i32 %227, ptr %187, align 4, !tbaa !11
  br label %228

228:                                              ; preds = %225, %.thread153
  %229 = icmp eq i64 %indvars.iv143, 5
  br i1 %229, label %.thread155, label %.thread154

.thread154:                                       ; preds = %220, %228
  %230 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 5, i64 %indvars.iv143
  %231 = load i8, ptr %230, align 1, !tbaa !15, !range !24, !noundef !25
  %232 = trunc nuw i8 %231 to i1
  br i1 %232, label %233, label %236

233:                                              ; preds = %.thread154
  %234 = load i32, ptr %187, align 4, !tbaa !11
  %235 = add nsw i32 %234, 1
  store i32 %235, ptr %187, align 4, !tbaa !11
  br label %236

236:                                              ; preds = %233, %.thread154
  %237 = icmp eq i64 %indvars.iv143, 6
  br i1 %237, label %.thread156, label %.thread155

.thread155:                                       ; preds = %228, %236
  %238 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 6, i64 %indvars.iv143
  %239 = load i8, ptr %238, align 1, !tbaa !15, !range !24, !noundef !25
  %240 = trunc nuw i8 %239 to i1
  br i1 %240, label %241, label %244

241:                                              ; preds = %.thread155
  %242 = load i32, ptr %187, align 4, !tbaa !11
  %243 = add nsw i32 %242, 1
  store i32 %243, ptr %187, align 4, !tbaa !11
  br label %244

244:                                              ; preds = %241, %.thread155
  %245 = icmp eq i64 %indvars.iv143, 7
  br i1 %245, label %.thread157, label %.thread156

.thread156:                                       ; preds = %236, %244
  %246 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 7, i64 %indvars.iv143
  %247 = load i8, ptr %246, align 1, !tbaa !15, !range !24, !noundef !25
  %248 = trunc nuw i8 %247 to i1
  br i1 %248, label %249, label %252

249:                                              ; preds = %.thread156
  %250 = load i32, ptr %187, align 4, !tbaa !11
  %251 = add nsw i32 %250, 1
  store i32 %251, ptr %187, align 4, !tbaa !11
  br label %252

252:                                              ; preds = %249, %.thread156
  %253 = icmp eq i64 %indvars.iv143, 8
  br i1 %253, label %.thread158, label %.thread157

.thread157:                                       ; preds = %244, %252
  %254 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 8, i64 %indvars.iv143
  %255 = load i8, ptr %254, align 1, !tbaa !15, !range !24, !noundef !25
  %256 = trunc nuw i8 %255 to i1
  br i1 %256, label %257, label %260

257:                                              ; preds = %.thread157
  %258 = load i32, ptr %187, align 4, !tbaa !11
  %259 = add nsw i32 %258, 1
  store i32 %259, ptr %187, align 4, !tbaa !11
  br label %260

260:                                              ; preds = %257, %.thread157
  %261 = icmp eq i64 %indvars.iv143, 9
  br i1 %261, label %.thread159, label %.thread158

.thread158:                                       ; preds = %252, %260
  %262 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 9, i64 %indvars.iv143
  %263 = load i8, ptr %262, align 1, !tbaa !15, !range !24, !noundef !25
  %264 = trunc nuw i8 %263 to i1
  br i1 %264, label %265, label %268

265:                                              ; preds = %.thread158
  %266 = load i32, ptr %187, align 4, !tbaa !11
  %267 = add nsw i32 %266, 1
  store i32 %267, ptr %187, align 4, !tbaa !11
  br label %268

268:                                              ; preds = %265, %.thread158
  %269 = icmp eq i64 %indvars.iv143, 10
  br i1 %269, label %.thread160, label %.thread159

.thread159:                                       ; preds = %260, %268
  %270 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 10, i64 %indvars.iv143
  %271 = load i8, ptr %270, align 1, !tbaa !15, !range !24, !noundef !25
  %272 = trunc nuw i8 %271 to i1
  br i1 %272, label %273, label %276

273:                                              ; preds = %.thread159
  %274 = load i32, ptr %187, align 4, !tbaa !11
  %275 = add nsw i32 %274, 1
  store i32 %275, ptr %187, align 4, !tbaa !11
  br label %276

276:                                              ; preds = %273, %.thread159
  %277 = icmp eq i64 %indvars.iv143, 11
  br i1 %277, label %.thread161, label %.thread160

.thread160:                                       ; preds = %268, %276
  %278 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 11, i64 %indvars.iv143
  %279 = load i8, ptr %278, align 1, !tbaa !15, !range !24, !noundef !25
  %280 = trunc nuw i8 %279 to i1
  br i1 %280, label %281, label %284

281:                                              ; preds = %.thread160
  %282 = load i32, ptr %187, align 4, !tbaa !11
  %283 = add nsw i32 %282, 1
  store i32 %283, ptr %187, align 4, !tbaa !11
  br label %284

284:                                              ; preds = %281, %.thread160
  %285 = icmp eq i64 %indvars.iv143, 12
  br i1 %285, label %.thread162, label %.thread161

.thread161:                                       ; preds = %276, %284
  %286 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 12, i64 %indvars.iv143
  %287 = load i8, ptr %286, align 1, !tbaa !15, !range !24, !noundef !25
  %288 = trunc nuw i8 %287 to i1
  br i1 %288, label %289, label %292

289:                                              ; preds = %.thread161
  %290 = load i32, ptr %187, align 4, !tbaa !11
  %291 = add nsw i32 %290, 1
  store i32 %291, ptr %187, align 4, !tbaa !11
  br label %292

292:                                              ; preds = %289, %.thread161
  %293 = icmp eq i64 %indvars.iv143, 13
  br i1 %293, label %.thread163, label %.thread162

.thread162:                                       ; preds = %284, %292
  %294 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 13, i64 %indvars.iv143
  %295 = load i8, ptr %294, align 1, !tbaa !15, !range !24, !noundef !25
  %296 = trunc nuw i8 %295 to i1
  br i1 %296, label %297, label %300

297:                                              ; preds = %.thread162
  %298 = load i32, ptr %187, align 4, !tbaa !11
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr %187, align 4, !tbaa !11
  br label %300

300:                                              ; preds = %297, %.thread162
  %301 = icmp eq i64 %indvars.iv143, 14
  br i1 %301, label %.thread164, label %.thread163

.thread163:                                       ; preds = %292, %300
  %302 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 14, i64 %indvars.iv143
  %303 = load i8, ptr %302, align 1, !tbaa !15, !range !24, !noundef !25
  %304 = trunc nuw i8 %303 to i1
  br i1 %304, label %305, label %308

305:                                              ; preds = %.thread163
  %306 = load i32, ptr %187, align 4, !tbaa !11
  %307 = add nsw i32 %306, 1
  store i32 %307, ptr %187, align 4, !tbaa !11
  br label %308

308:                                              ; preds = %305, %.thread163
  %309 = icmp eq i64 %indvars.iv143, 15
  br i1 %309, label %.thread165, label %.thread164

.thread164:                                       ; preds = %300, %308
  %310 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 15, i64 %indvars.iv143
  %311 = load i8, ptr %310, align 1, !tbaa !15, !range !24, !noundef !25
  %312 = trunc nuw i8 %311 to i1
  br i1 %312, label %313, label %316

313:                                              ; preds = %.thread164
  %314 = load i32, ptr %187, align 4, !tbaa !11
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr %187, align 4, !tbaa !11
  br label %316

316:                                              ; preds = %313, %.thread164
  %317 = icmp eq i64 %indvars.iv143, 16
  br i1 %317, label %.thread166, label %.thread165

.thread165:                                       ; preds = %308, %316
  %318 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 16, i64 %indvars.iv143
  %319 = load i8, ptr %318, align 1, !tbaa !15, !range !24, !noundef !25
  %320 = trunc nuw i8 %319 to i1
  br i1 %320, label %321, label %324

321:                                              ; preds = %.thread165
  %322 = load i32, ptr %187, align 4, !tbaa !11
  %323 = add nsw i32 %322, 1
  store i32 %323, ptr %187, align 4, !tbaa !11
  br label %324

324:                                              ; preds = %321, %.thread165
  %325 = icmp eq i64 %indvars.iv143, 17
  br i1 %325, label %.thread167, label %.thread166

.thread166:                                       ; preds = %316, %324
  %326 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 17, i64 %indvars.iv143
  %327 = load i8, ptr %326, align 1, !tbaa !15, !range !24, !noundef !25
  %328 = trunc nuw i8 %327 to i1
  br i1 %328, label %329, label %332

329:                                              ; preds = %.thread166
  %330 = load i32, ptr %187, align 4, !tbaa !11
  %331 = add nsw i32 %330, 1
  store i32 %331, ptr %187, align 4, !tbaa !11
  br label %332

332:                                              ; preds = %329, %.thread166
  %333 = icmp eq i64 %indvars.iv143, 18
  br i1 %333, label %.thread168, label %.thread167

.thread167:                                       ; preds = %324, %332
  %334 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 18, i64 %indvars.iv143
  %335 = load i8, ptr %334, align 1, !tbaa !15, !range !24, !noundef !25
  %336 = trunc nuw i8 %335 to i1
  br i1 %336, label %337, label %340

337:                                              ; preds = %.thread167
  %338 = load i32, ptr %187, align 4, !tbaa !11
  %339 = add nsw i32 %338, 1
  store i32 %339, ptr %187, align 4, !tbaa !11
  br label %340

340:                                              ; preds = %337, %.thread167
  %341 = icmp eq i64 %indvars.iv143, 19
  br i1 %341, label %.thread169, label %.thread168

.thread168:                                       ; preds = %332, %340
  %342 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 19, i64 %indvars.iv143
  %343 = load i8, ptr %342, align 1, !tbaa !15, !range !24, !noundef !25
  %344 = trunc nuw i8 %343 to i1
  br i1 %344, label %345, label %348

345:                                              ; preds = %.thread168
  %346 = load i32, ptr %187, align 4, !tbaa !11
  %347 = add nsw i32 %346, 1
  store i32 %347, ptr %187, align 4, !tbaa !11
  br label %348

348:                                              ; preds = %345, %.thread168
  %349 = icmp eq i64 %indvars.iv143, 20
  br i1 %349, label %.thread170, label %.thread169

.thread169:                                       ; preds = %340, %348
  %350 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 20, i64 %indvars.iv143
  %351 = load i8, ptr %350, align 1, !tbaa !15, !range !24, !noundef !25
  %352 = trunc nuw i8 %351 to i1
  br i1 %352, label %353, label %356

353:                                              ; preds = %.thread169
  %354 = load i32, ptr %187, align 4, !tbaa !11
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr %187, align 4, !tbaa !11
  br label %356

356:                                              ; preds = %353, %.thread169
  %357 = icmp eq i64 %indvars.iv143, 21
  br i1 %357, label %.thread171, label %.thread170

.thread170:                                       ; preds = %348, %356
  %358 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 21, i64 %indvars.iv143
  %359 = load i8, ptr %358, align 1, !tbaa !15, !range !24, !noundef !25
  %360 = trunc nuw i8 %359 to i1
  br i1 %360, label %361, label %364

361:                                              ; preds = %.thread170
  %362 = load i32, ptr %187, align 4, !tbaa !11
  %363 = add nsw i32 %362, 1
  store i32 %363, ptr %187, align 4, !tbaa !11
  br label %364

364:                                              ; preds = %361, %.thread170
  %365 = icmp eq i64 %indvars.iv143, 22
  br i1 %365, label %.thread172, label %.thread171

.thread171:                                       ; preds = %356, %364
  %366 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 22, i64 %indvars.iv143
  %367 = load i8, ptr %366, align 1, !tbaa !15, !range !24, !noundef !25
  %368 = trunc nuw i8 %367 to i1
  br i1 %368, label %369, label %372

369:                                              ; preds = %.thread171
  %370 = load i32, ptr %187, align 4, !tbaa !11
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr %187, align 4, !tbaa !11
  br label %372

372:                                              ; preds = %369, %.thread171
  %373 = icmp eq i64 %indvars.iv143, 23
  br i1 %373, label %.thread173, label %.thread172

.thread172:                                       ; preds = %364, %372
  %374 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 23, i64 %indvars.iv143
  %375 = load i8, ptr %374, align 1, !tbaa !15, !range !24, !noundef !25
  %376 = trunc nuw i8 %375 to i1
  br i1 %376, label %377, label %380

377:                                              ; preds = %.thread172
  %378 = load i32, ptr %187, align 4, !tbaa !11
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr %187, align 4, !tbaa !11
  br label %380

380:                                              ; preds = %377, %.thread172
  %381 = icmp eq i64 %indvars.iv143, 24
  br i1 %381, label %.thread174, label %.thread173

.thread173:                                       ; preds = %372, %380
  %382 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 24, i64 %indvars.iv143
  %383 = load i8, ptr %382, align 1, !tbaa !15, !range !24, !noundef !25
  %384 = trunc nuw i8 %383 to i1
  br i1 %384, label %385, label %388

385:                                              ; preds = %.thread173
  %386 = load i32, ptr %187, align 4, !tbaa !11
  %387 = add nsw i32 %386, 1
  store i32 %387, ptr %187, align 4, !tbaa !11
  br label %388

388:                                              ; preds = %385, %.thread173
  %389 = icmp eq i64 %indvars.iv143, 25
  br i1 %389, label %.loopexit97.thread, label %.thread174

.thread174:                                       ; preds = %380, %388
  %390 = getelementptr inbounds [26 x [26 x i8]], ptr %13, i64 0, i64 25, i64 %indvars.iv143
  %391 = load i8, ptr %390, align 1, !tbaa !15, !range !24, !noundef !25
  %392 = trunc nuw i8 %391 to i1
  br i1 %392, label %393, label %.loopexit97

393:                                              ; preds = %.thread174
  %394 = load i32, ptr %187, align 4, !tbaa !11
  %395 = add nsw i32 %394, 1
  br label %.loopexit97.sink.split

.loopexit97.sink.split:                           ; preds = %183, %393
  %.sink = phi i32 [ %395, %393 ], [ 2147483647, %183 ]
  store i32 %.sink, ptr %187, align 4, !tbaa !11
  br label %.loopexit97

.loopexit97:                                      ; preds = %.loopexit97.sink.split, %.thread174
  %indvars.iv.next144 = add nuw nsw i64 %indvars.iv143, 1
  %exitcond146.not = icmp eq i64 %indvars.iv.next144, 26
  br i1 %exitcond146.not, label %.loopexit97.thread, label %183, !llvm.loop !26

396:                                              ; preds = %.loopexit97.thread
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #8
  %397 = load i32, ptr %1, align 4, !tbaa !11
  %398 = load i32, ptr %2, align 4, !tbaa !11
  invoke void @_Z7topSortiiRA26_A26_bRSt6vectorIiSaIiEERA26_iRS_RS2_IS4_SaIS4_EE(i32 noundef %397, i32 noundef %398, ptr noundef nonnull align 1 dereferenceable(676) %13, ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 4 dereferenceable(104) %15, ptr noundef nonnull align 1 dereferenceable(26) %19, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %.preheader95 unwind label %406

.preheader95:                                     ; preds = %396
  %399 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  %400 = trunc i64 %399 to i32
  %401 = icmp sgt i32 %400, 0
  br i1 %401, label %.lr.ph121, label %._crit_edge122

._crit_edge122:                                   ; preds = %412, %.preheader95
  %402 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  %403 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES2_IS4_SaIS4_EEEEEvT_S9_(ptr %402, ptr %403)
          to label %418 unwind label %406

404:                                              ; preds = %.loopexit97.thread
  %405 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #8
  br label %448

406:                                              ; preds = %._crit_edge122, %396
  %407 = landingpad { ptr, i32 }
          cleanup
  br label %448

.lr.ph121:                                        ; preds = %.preheader95, %412
  %indvars.iv147 = phi i64 [ %indvars.iv.next148, %412 ], [ 0, %.preheader95 ]
  %408 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %indvars.iv147) #8
  %409 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %408) #8
  %410 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %indvars.iv147) #8
  %411 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %410) #8
  invoke void @_ZSt7reverseIN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEEEvT_S7_(ptr %409, ptr %411)
          to label %412 unwind label %416

412:                                              ; preds = %.lr.ph121
  %indvars.iv.next148 = add nuw nsw i64 %indvars.iv147, 1
  %413 = call noundef i64 @_ZNKSt6vectorIS_IiSaIiEESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  %sext = shl i64 %413, 32
  %414 = ashr exact i64 %sext, 32
  %415 = icmp slt i64 %indvars.iv.next148, %414
  br i1 %415, label %.lr.ph121, label %._crit_edge122, !llvm.loop !27

416:                                              ; preds = %.lr.ph121
  %417 = landingpad { ptr, i32 }
          cleanup
  br label %448

418:                                              ; preds = %._crit_edge122
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  %419 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  store ptr %419, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  %420 = call ptr @_ZNSt6vectorIS_IiSaIiEESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  store ptr %420, ptr %22, align 8
  %421 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  br i1 %421, label %.lr.ph127, label %._crit_edge128

._crit_edge128:                                   ; preds = %441, %418
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 26, ptr nonnull %19) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 676, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %3) #8
  br i1 %42, label %.loopexit94, label %.preheader93.preheader

.preheader93.preheader:                           ; preds = %._crit_edge128
  %422 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %41, i64 %39
  br label %.preheader93

.lr.ph127:                                        ; preds = %418, %441
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #8
  %423 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %423)
          to label %424 unwind label %429

424:                                              ; preds = %.lr.ph127
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  %425 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  store ptr %425, ptr %24, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  %426 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  store ptr %426, ptr %25, align 8
  %427 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br i1 %427, label %.lr.ph124, label %._crit_edge125

._crit_edge125:                                   ; preds = %436, %424
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  %428 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %441 unwind label %444

429:                                              ; preds = %.lr.ph127
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %447

.lr.ph124:                                        ; preds = %424, %436
  %431 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  %432 = load i32, ptr %431, align 4, !tbaa !11
  %433 = trunc i32 %432 to i8
  %434 = add i8 %433, 65
  %435 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i8 noundef signext %434)
          to label %436 unwind label %439

436:                                              ; preds = %.lr.ph124
  %437 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  %438 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br i1 %438, label %.lr.ph124, label %._crit_edge125

439:                                              ; preds = %.lr.ph124
  %440 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  br label %446

441:                                              ; preds = %._crit_edge125
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #8
  %442 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  %443 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  br i1 %443, label %.lr.ph127, label %._crit_edge128

444:                                              ; preds = %._crit_edge125
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %446

446:                                              ; preds = %444, %439
  %.pn = phi { ptr, i32 } [ %440, %439 ], [ %445, %444 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  br label %447

447:                                              ; preds = %446, %429
  %.pn.pn = phi { ptr, i32 } [ %.pn, %446 ], [ %430, %429 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br label %448

448:                                              ; preds = %447, %416, %406, %404
  %.pn84 = phi { ptr, i32 } [ %417, %416 ], [ %.pn.pn, %447 ], [ %407, %406 ], [ %405, %404 ]
  call void @llvm.lifetime.end.p0(i64 26, ptr nonnull %19) #8
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  call void @_ZNSt6vectorIS_IiSaIiEESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #8
  br label %449

449:                                              ; preds = %448, %181
  %.pn84.pn = phi { ptr, i32 } [ %.pn84, %448 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %15) #8
  br label %450

450:                                              ; preds = %449, %126
  %.pn84.pn.pn = phi { ptr, i32 } [ %.pn84.pn, %449 ], [ %127, %126 ]
  call void @llvm.lifetime.end.p0(i64 676, ptr nonnull %13) #8
  br label %451

451:                                              ; preds = %450, %78, %76, %74, %72
  %.pn84.pn.pn.pn = phi { ptr, i32 } [ %.pn84.pn.pn, %450 ], [ %79, %78 ], [ %77, %76 ], [ %75, %74 ], [ %73, %72 ]
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %5) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %3) #8
  br label %455

.preheader93:                                     ; preds = %.preheader93.preheader, %.preheader93
  %452 = phi ptr [ %453, %.preheader93 ], [ %422, %.preheader93.preheader ]
  %453 = getelementptr inbounds i8, ptr %452, i64 -32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #8
  %454 = icmp eq ptr %453, %41
  br i1 %454, label %.loopexit94, label %.preheader93

.loopexit94:                                      ; preds = %.preheader93, %._crit_edge128
  call void @llvm.stackrestore.p0(ptr %40)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #8
  ret i32 0

455:                                              ; preds = %451, %58
  %.pn91 = phi { ptr, i32 } [ %59, %58 ], [ %.pn84.pn.pn.pn, %451 ]
  br i1 %42, label %.loopexit, label %.preheader.preheader

.preheader.preheader:                             ; preds = %455
  %456 = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %41, i64 %39
  br label %.preheader

.preheader:                                       ; preds = %.preheader.preheader, %.preheader
  %457 = phi ptr [ %458, %.preheader ], [ %456, %.preheader.preheader ]
  %458 = getelementptr inbounds i8, ptr %457, i64 -32
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %458) #8
  %459 = icmp eq ptr %458, %41
  br i1 %459, label %.loopexit, label %.preheader

.loopexit:                                        ; preds = %.preheader, %455
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %1) #8
  resume { ptr, i32 } %.pn91
}

declare ptr @freopen(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn
declare ptr @llvm.stacksave.p0() #5

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #4 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4fillIPbbEvT_S1_RKT0_(ptr noundef, ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorIiSaIiEES1_IS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #0 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 #7

; 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 #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8), i8 noundef signext) local_unnamed_addr #6

; 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 #4 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn
declare void @llvm.stackrestore.p0(ptr) #5

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { 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 #5 = { mustprogress nocallback nofree nosync nounwind willreturn }
attributes #6 = { 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 #7 = { 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 #8 = { 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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !16, i64 0}
!16 = !{!"bool", !7, i64 0}
!17 = distinct !{!17, !14, !18}
!18 = !{!"llvm.loop.unswitch.partial.disable"}
!19 = !{!7, !7, i64 0}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = !{i8 0, i8 2}
!25 = !{}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}


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