; LLVM IR from tangjz/acm-icpc :: hdu (6120)

; 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"

%struct.complex = type { double, double }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i32, i32 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@_ZL2pi = external hidden global double, align 8
@t = external dso_local global i32, align 4
@n = external dso_local global i32, align 4
@f = external dso_local global [32677 x i32], align 16
@val = external dso_local global [41 x [797 x i32]], align 16
@per1 = external dso_local global [41 x i32], align 16
@per2 = external dso_local global [797 x i32], align 16
@ord1 = external dso_local global [41 x i32], align 16
@ord2 = external dso_local global [797 x i32], align 16
@w = external dso_local global [2049 x %struct.complex], align 16
@mu = external dso_local global [32677 x i32], align 16
@deg = external dso_local global [32677 x i32], align 16
@ord = external dso_local global [32677 x i32], align 16
@dis = external dso_local global [32677 x i32], align 16
@ans = external dso_local global i32, align 4
@e = external dso_local global [32677 x %"class.std::vector"], align 16
@.str = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z7precalcv() #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7complexC2Edd(ptr noundef nonnull align 8 dereferenceable(16), double noundef, double noundef) unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_Z3cmpRKiS0_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #4

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #5 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %struct.complex, align 8
  %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 i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::vector", align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %"struct.std::pair", align 4
  %26 = alloca %"struct.std::pair", align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %46 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr %2) #10
  store i32 0, ptr %2, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #10
  store i32 2048, ptr %3, align 4, !tbaa !5
  br label %47

47:                                               ; preds = %93, %0
  %48 = load i32, ptr %2, align 4, !tbaa !5
  %49 = load i32, ptr %3, align 4, !tbaa !5
  %50 = icmp slt i32 %48, %49
  br i1 %50, label %52, label %51

51:                                               ; preds = %47
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #10
  br label %96

52:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #10
  %53 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %53, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #10
  %54 = load i32, ptr %3, align 4, !tbaa !5
  %55 = ashr i32 %54, 1
  store i32 %55, ptr %5, align 4, !tbaa !5
  br label %56

56:                                               ; preds = %68, %52
  %57 = load i32, ptr %4, align 4, !tbaa !5
  %58 = and i32 %57, 1
  %59 = icmp ne i32 %58, 0
  br i1 %59, label %65, label %60

60:                                               ; preds = %56
  %61 = load i32, ptr %5, align 4, !tbaa !5
  %62 = and i32 %61, 1
  %63 = icmp ne i32 %62, 0
  %64 = xor i1 %63, true
  br label %65

65:                                               ; preds = %60, %56
  %66 = phi i1 [ false, %56 ], [ %64, %60 ]
  br i1 %66, label %67, label %73

67:                                               ; preds = %65
  br label %68

68:                                               ; preds = %67
  %69 = load i32, ptr %4, align 4, !tbaa !5
  %70 = ashr i32 %69, 1
  store i32 %70, ptr %4, align 4, !tbaa !5
  %71 = load i32, ptr %5, align 4, !tbaa !5
  %72 = ashr i32 %71, 1
  store i32 %72, ptr %5, align 4, !tbaa !5
  br label %56, !llvm.loop !9

73:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #10
  %74 = load double, ptr @_ZL2pi, align 8, !tbaa !11
  %75 = load i32, ptr %5, align 4, !tbaa !5
  %76 = sitofp i32 %75 to double
  %77 = fdiv double %74, %76
  %78 = load i32, ptr %4, align 4, !tbaa !5
  %79 = sitofp i32 %78 to double
  %80 = fmul double %77, %79
  %81 = call double @cos(double noundef %80) #10
  %82 = load double, ptr @_ZL2pi, align 8, !tbaa !11
  %83 = load i32, ptr %5, align 4, !tbaa !5
  %84 = sitofp i32 %83 to double
  %85 = fdiv double %82, %84
  %86 = load i32, ptr %4, align 4, !tbaa !5
  %87 = sitofp i32 %86 to double
  %88 = fmul double %85, %87
  %89 = call double @sin(double noundef %88) #10
  call void @_ZN7complexC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %6, double noundef %81, double noundef %89)
  %90 = load i32, ptr %2, align 4, !tbaa !5
  %91 = sext i32 %90 to i64
  %92 = getelementptr inbounds [2049 x %struct.complex], ptr @w, i64 0, i64 %91
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %92, ptr align 8 %6, i64 16, i1 false), !tbaa.struct !13
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #10
  br label %93

93:                                               ; preds = %73
  %94 = load i32, ptr %2, align 4, !tbaa !5
  %95 = add nsw i32 %94, 1
  store i32 %95, ptr %2, align 4, !tbaa !5
  br label %47, !llvm.loop !14

96:                                               ; preds = %51
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  store i32 0, ptr %7, align 4, !tbaa !5
  br label %97

97:                                               ; preds = %111, %96
  %98 = load i32, ptr %7, align 4, !tbaa !5
  %99 = icmp slt i32 %98, 32677
  br i1 %99, label %101, label %100

100:                                              ; preds = %97
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %114

101:                                              ; preds = %97
  %102 = load i32, ptr %7, align 4, !tbaa !5
  %103 = load i32, ptr %7, align 4, !tbaa !5
  %104 = srem i32 %103, 41
  %105 = sext i32 %104 to i64
  %106 = getelementptr inbounds [41 x [797 x i32]], ptr @val, i64 0, i64 %105
  %107 = load i32, ptr %7, align 4, !tbaa !5
  %108 = srem i32 %107, 797
  %109 = sext i32 %108 to i64
  %110 = getelementptr inbounds [797 x i32], ptr %106, i64 0, i64 %109
  store i32 %102, ptr %110, align 4, !tbaa !5
  br label %111

111:                                              ; preds = %101
  %112 = load i32, ptr %7, align 4, !tbaa !5
  %113 = add nsw i32 %112, 1
  store i32 %113, ptr %7, align 4, !tbaa !5
  br label %97, !llvm.loop !15

114:                                              ; preds = %100
  store i32 1, ptr getelementptr inbounds ([41 x i32], ptr @ord1, i64 0, i64 1), align 4, !tbaa !5
  store i32 1, ptr getelementptr inbounds ([41 x i32], ptr @per1, i64 0, i64 1), align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  store i32 2, ptr %8, align 4, !tbaa !5
  br label %115

115:                                              ; preds = %137, %114
  %116 = load i32, ptr %8, align 4, !tbaa !5
  %117 = icmp slt i32 %116, 41
  br i1 %117, label %119, label %118

118:                                              ; preds = %115
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %140

119:                                              ; preds = %115
  %120 = load i32, ptr %8, align 4, !tbaa !5
  %121 = sub nsw i32 %120, 1
  %122 = sext i32 %121 to i64
  %123 = getelementptr inbounds [41 x i32], ptr @per1, i64 0, i64 %122
  %124 = load i32, ptr %123, align 4, !tbaa !5
  %125 = mul nsw i32 %124, 6
  %126 = srem i32 %125, 41
  %127 = load i32, ptr %8, align 4, !tbaa !5
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds [41 x i32], ptr @per1, i64 0, i64 %128
  store i32 %126, ptr %129, align 4, !tbaa !5
  %130 = load i32, ptr %8, align 4, !tbaa !5
  %131 = load i32, ptr %8, align 4, !tbaa !5
  %132 = sext i32 %131 to i64
  %133 = getelementptr inbounds [41 x i32], ptr @per1, i64 0, i64 %132
  %134 = load i32, ptr %133, align 4, !tbaa !5
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds [41 x i32], ptr @ord1, i64 0, i64 %135
  store i32 %130, ptr %136, align 4, !tbaa !5
  br label %137

137:                                              ; preds = %119
  %138 = load i32, ptr %8, align 4, !tbaa !5
  %139 = add nsw i32 %138, 1
  store i32 %139, ptr %8, align 4, !tbaa !5
  br label %115, !llvm.loop !16

140:                                              ; preds = %118
  store i32 1, ptr getelementptr inbounds ([797 x i32], ptr @ord2, i64 0, i64 1), align 4, !tbaa !5
  store i32 1, ptr getelementptr inbounds ([797 x i32], ptr @per2, i64 0, i64 1), align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #10
  store i32 2, ptr %9, align 4, !tbaa !5
  br label %141

141:                                              ; preds = %163, %140
  %142 = load i32, ptr %9, align 4, !tbaa !5
  %143 = icmp slt i32 %142, 797
  br i1 %143, label %145, label %144

144:                                              ; preds = %141
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %166

145:                                              ; preds = %141
  %146 = load i32, ptr %9, align 4, !tbaa !5
  %147 = sub nsw i32 %146, 1
  %148 = sext i32 %147 to i64
  %149 = getelementptr inbounds [797 x i32], ptr @per2, i64 0, i64 %148
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = mul nsw i32 %150, 2
  %152 = srem i32 %151, 797
  %153 = load i32, ptr %9, align 4, !tbaa !5
  %154 = sext i32 %153 to i64
  %155 = getelementptr inbounds [797 x i32], ptr @per2, i64 0, i64 %154
  store i32 %152, ptr %155, align 4, !tbaa !5
  %156 = load i32, ptr %9, align 4, !tbaa !5
  %157 = load i32, ptr %9, align 4, !tbaa !5
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds [797 x i32], ptr @per2, i64 0, i64 %158
  %160 = load i32, ptr %159, align 4, !tbaa !5
  %161 = sext i32 %160 to i64
  %162 = getelementptr inbounds [797 x i32], ptr @ord2, i64 0, i64 %161
  store i32 %156, ptr %162, align 4, !tbaa !5
  br label %163

163:                                              ; preds = %145
  %164 = load i32, ptr %9, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr %9, align 4, !tbaa !5
  br label %141, !llvm.loop !17

166:                                              ; preds = %144
  store i32 1, ptr getelementptr inbounds ([32677 x i32], ptr @mu, i64 0, i64 1), align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  store i32 1, ptr %10, align 4, !tbaa !5
  br label %167

167:                                              ; preds = %194, %166
  %168 = load i32, ptr %10, align 4, !tbaa !5
  %169 = icmp slt i32 %168, 32677
  br i1 %169, label %171, label %170

170:                                              ; preds = %167
  store i32 17, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %197

171:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %172 = load i32, ptr %10, align 4, !tbaa !5
  %173 = load i32, ptr %10, align 4, !tbaa !5
  %174 = add nsw i32 %172, %173
  store i32 %174, ptr %12, align 4, !tbaa !5
  br label %175

175:                                              ; preds = %189, %171
  %176 = load i32, ptr %12, align 4, !tbaa !5
  %177 = icmp slt i32 %176, 32677
  br i1 %177, label %179, label %178

178:                                              ; preds = %175
  store i32 20, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %193

179:                                              ; preds = %175
  %180 = load i32, ptr %10, align 4, !tbaa !5
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %181
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = load i32, ptr %12, align 4, !tbaa !5
  %185 = sext i32 %184 to i64
  %186 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %185
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = sub nsw i32 %187, %183
  store i32 %188, ptr %186, align 4, !tbaa !5
  br label %189

189:                                              ; preds = %179
  %190 = load i32, ptr %10, align 4, !tbaa !5
  %191 = load i32, ptr %12, align 4, !tbaa !5
  %192 = add nsw i32 %191, %190
  store i32 %192, ptr %12, align 4, !tbaa !5
  br label %175, !llvm.loop !18

193:                                              ; preds = %178
  br label %194

194:                                              ; preds = %193
  %195 = load i32, ptr %10, align 4, !tbaa !5
  %196 = add nsw i32 %195, 1
  store i32 %196, ptr %10, align 4, !tbaa !5
  br label %167, !llvm.loop !19

197:                                              ; preds = %170
  %198 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef @t)
  br label %199

199:                                              ; preds = %683, %197
  %200 = load i32, ptr @t, align 4, !tbaa !5
  %201 = add nsw i32 %200, -1
  store i32 %201, ptr @t, align 4, !tbaa !5
  %202 = icmp ne i32 %200, 0
  br i1 %202, label %203, label %687

203:                                              ; preds = %199
  %204 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef @n)
  call void @llvm.memset.p0.i64(ptr align 16 @f, i8 0, i64 130708, i1 false)
  br label %205

205:                                              ; preds = %209, %203
  %206 = load i32, ptr @n, align 4, !tbaa !5
  %207 = add nsw i32 %206, -1
  store i32 %207, ptr @n, align 4, !tbaa !5
  %208 = icmp ne i32 %206, 0
  br i1 %208, label %209, label %216

209:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %210 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef @.str, ptr noundef %13)
  %211 = load i32, ptr %13, align 4, !tbaa !5
  %212 = sext i32 %211 to i64
  %213 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %212
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = add nsw i32 %214, 1
  store i32 %215, ptr %213, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %205, !llvm.loop !20

216:                                              ; preds = %205
  call void @_Z7precalcv()
  %217 = load i32, ptr @f, align 16, !tbaa !5
  %218 = mul nsw i32 3, %217
  %219 = load i32, ptr getelementptr inbounds ([32677 x i32], ptr @f, i64 0, i64 1), align 4, !tbaa !5
  %220 = mul nsw i32 %218, %219
  %221 = load i32, ptr getelementptr inbounds ([32677 x i32], ptr @f, i64 0, i64 1), align 4, !tbaa !5
  %222 = mul nsw i32 %220, %221
  store i32 %222, ptr @ans, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  store i32 1, ptr %14, align 4, !tbaa !5
  br label %223

223:                                              ; preds = %250, %216
  %224 = load i32, ptr %14, align 4, !tbaa !5
  %225 = icmp slt i32 %224, 32677
  br i1 %225, label %227, label %226

226:                                              ; preds = %223
  store i32 27, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %253

227:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %228 = load i32, ptr %14, align 4, !tbaa !5
  %229 = load i32, ptr %14, align 4, !tbaa !5
  %230 = add nsw i32 %228, %229
  store i32 %230, ptr %15, align 4, !tbaa !5
  br label %231

231:                                              ; preds = %245, %227
  %232 = load i32, ptr %15, align 4, !tbaa !5
  %233 = icmp slt i32 %232, 32677
  br i1 %233, label %235, label %234

234:                                              ; preds = %231
  store i32 30, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %249

235:                                              ; preds = %231
  %236 = load i32, ptr %15, align 4, !tbaa !5
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %237
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = load i32, ptr %14, align 4, !tbaa !5
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %241
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = add nsw i32 %243, %239
  store i32 %244, ptr %242, align 4, !tbaa !5
  br label %245

245:                                              ; preds = %235
  %246 = load i32, ptr %14, align 4, !tbaa !5
  %247 = load i32, ptr %15, align 4, !tbaa !5
  %248 = add nsw i32 %247, %246
  store i32 %248, ptr %15, align 4, !tbaa !5
  br label %231, !llvm.loop !21

249:                                              ; preds = %234
  br label %250

250:                                              ; preds = %249
  %251 = load i32, ptr %14, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr %14, align 4, !tbaa !5
  br label %223, !llvm.loop !22

253:                                              ; preds = %226
  call void @llvm.memset.p0.i64(ptr align 16 @deg, i8 0, i64 130708, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  store i32 1, ptr %16, align 4, !tbaa !5
  br label %254

254:                                              ; preds = %266, %253
  %255 = load i32, ptr %16, align 4, !tbaa !5
  %256 = icmp slt i32 %255, 32677
  br i1 %256, label %258, label %257

257:                                              ; preds = %254
  store i32 33, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %269

258:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #10
  call void @llvm.memset.p0.i64(ptr align 8 %17, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #10
  %259 = load i32, ptr %16, align 4, !tbaa !5
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %260
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EE4swapERS3_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(24) %261) #10
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #10
  %262 = load i32, ptr %16, align 4, !tbaa !5
  %263 = load i32, ptr %16, align 4, !tbaa !5
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds [32677 x i32], ptr @ord, i64 0, i64 %264
  store i32 %262, ptr %265, align 4, !tbaa !5
  br label %266

266:                                              ; preds = %258
  %267 = load i32, ptr %16, align 4, !tbaa !5
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr %16, align 4, !tbaa !5
  br label %254, !llvm.loop !23

269:                                              ; preds = %257
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  store i32 1, ptr %18, align 4, !tbaa !5
  br label %270

270:                                              ; preds = %372, %269
  %271 = load i32, ptr %18, align 4, !tbaa !5
  %272 = icmp slt i32 %271, 32677
  br i1 %272, label %274, label %273

273:                                              ; preds = %270
  store i32 36, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %375

274:                                              ; preds = %270
  %275 = load i32, ptr %18, align 4, !tbaa !5
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %276
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = icmp ne i32 %278, 0
  br i1 %279, label %280, label %371

280:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  store i32 1, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %281 = load i32, ptr %18, align 4, !tbaa !5
  store i32 %281, ptr %20, align 4, !tbaa !5
  br label %282

282:                                              ; preds = %364, %280
  %283 = load i32, ptr %20, align 4, !tbaa !5
  %284 = icmp slt i32 %283, 32677
  br i1 %284, label %286, label %285

285:                                              ; preds = %282
  store i32 39, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %370

286:                                              ; preds = %282
  %287 = load i32, ptr %20, align 4, !tbaa !5
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %288
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = icmp ne i32 %290, 0
  br i1 %291, label %292, label %363

292:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %293 = load i32, ptr %19, align 4, !tbaa !5
  store i32 %293, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %294 = load i32, ptr %20, align 4, !tbaa !5
  store i32 %294, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %295 = load i32, ptr %19, align 4, !tbaa !5
  %296 = sdiv i32 32676, %295
  store i32 %296, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %297 = load i32, ptr %20, align 4, !tbaa !5
  %298 = load i32, ptr %21, align 4, !tbaa !5
  %299 = mul nsw i32 %297, %298
  store i32 %299, ptr %24, align 4, !tbaa !5
  br label %300

300:                                              ; preds = %353, %292
  %301 = load i32, ptr %22, align 4, !tbaa !5
  %302 = load i32, ptr %23, align 4, !tbaa !5
  %303 = icmp sle i32 %301, %302
  br i1 %303, label %305, label %304

304:                                              ; preds = %300
  store i32 42, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %362

305:                                              ; preds = %300
  %306 = load i32, ptr %22, align 4, !tbaa !5
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %307
  %309 = load i32, ptr %308, align 4, !tbaa !5
  %310 = icmp ne i32 %309, 0
  br i1 %310, label %311, label %352

311:                                              ; preds = %305
  %312 = load i32, ptr %19, align 4, !tbaa !5
  %313 = load i32, ptr %21, align 4, !tbaa !5
  %314 = call noundef i32 @_ZSt5__gcdIiET_S0_S0_(i32 noundef %312, i32 noundef %313)
  %315 = icmp eq i32 %314, 1
  br i1 %315, label %316, label %352

316:                                              ; preds = %311
  %317 = load i32, ptr %24, align 4, !tbaa !5
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %318
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = icmp ne i32 %320, 0
  br i1 %321, label %322, label %352

322:                                              ; preds = %316
  %323 = load i32, ptr %20, align 4, !tbaa !5
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %324
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr %325, align 4, !tbaa !5
  %328 = load i32, ptr %20, align 4, !tbaa !5
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %329
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %331 = load i32, ptr %24, align 4, !tbaa !5
  %332 = sext i32 %331 to i64
  %333 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %332
  %334 = call i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 4 dereferenceable(4) %333)
  store i64 %334, ptr %25, align 4
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %330, ptr noundef nonnull align 4 dereferenceable(8) %25)
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  %335 = load i32, ptr %20, align 4, !tbaa !5
  %336 = load i32, ptr %22, align 4, !tbaa !5
  %337 = icmp slt i32 %335, %336
  br i1 %337, label %338, label %351

338:                                              ; preds = %322
  %339 = load i32, ptr %22, align 4, !tbaa !5
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %340
  %342 = load i32, ptr %341, align 4, !tbaa !5
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr %341, align 4, !tbaa !5
  %344 = load i32, ptr %22, align 4, !tbaa !5
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %345
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  %347 = load i32, ptr %24, align 4, !tbaa !5
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %348
  %350 = call i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %20, ptr noundef nonnull align 4 dereferenceable(4) %349)
  store i64 %350, ptr %26, align 4
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %346, ptr noundef nonnull align 4 dereferenceable(8) %26)
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %351

351:                                              ; preds = %338, %322
  br label %352

352:                                              ; preds = %351, %316, %311, %305
  br label %353

353:                                              ; preds = %352
  %354 = load i32, ptr %21, align 4, !tbaa !5
  %355 = add nsw i32 %354, 1
  store i32 %355, ptr %21, align 4, !tbaa !5
  %356 = load i32, ptr %18, align 4, !tbaa !5
  %357 = load i32, ptr %22, align 4, !tbaa !5
  %358 = add nsw i32 %357, %356
  store i32 %358, ptr %22, align 4, !tbaa !5
  %359 = load i32, ptr %20, align 4, !tbaa !5
  %360 = load i32, ptr %24, align 4, !tbaa !5
  %361 = add nsw i32 %360, %359
  store i32 %361, ptr %24, align 4, !tbaa !5
  br label %300, !llvm.loop !24

362:                                              ; preds = %304
  br label %363

363:                                              ; preds = %362, %286
  br label %364

364:                                              ; preds = %363
  %365 = load i32, ptr %19, align 4, !tbaa !5
  %366 = add nsw i32 %365, 1
  store i32 %366, ptr %19, align 4, !tbaa !5
  %367 = load i32, ptr %18, align 4, !tbaa !5
  %368 = load i32, ptr %20, align 4, !tbaa !5
  %369 = add nsw i32 %368, %367
  store i32 %369, ptr %20, align 4, !tbaa !5
  br label %282, !llvm.loop !25

370:                                              ; preds = %285
  br label %371

371:                                              ; preds = %370, %274
  br label %372

372:                                              ; preds = %371
  %373 = load i32, ptr %18, align 4, !tbaa !5
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr %18, align 4, !tbaa !5
  br label %270, !llvm.loop !26

375:                                              ; preds = %273
  call void @_ZSt4sortIPiPFbRKiS2_EEvT_S5_T0_(ptr noundef getelementptr inbounds (i32, ptr @ord, i64 1), ptr noundef getelementptr inbounds (i32, ptr @ord, i64 32677), ptr noundef @_Z3cmpRKiS0_)
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  store i32 1, ptr %27, align 4, !tbaa !5
  br label %376

376:                                              ; preds = %680, %375
  %377 = load i32, ptr %27, align 4, !tbaa !5
  %378 = icmp slt i32 %377, 32677
  br i1 %378, label %380, label %379

379:                                              ; preds = %376
  store i32 45, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %683

380:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %381 = load i32, ptr %27, align 4, !tbaa !5
  %382 = sext i32 %381 to i64
  %383 = getelementptr inbounds [32677 x i32], ptr @ord, i64 0, i64 %382
  %384 = load i32, ptr %383, align 4, !tbaa !5
  store i32 %384, ptr %28, align 4, !tbaa !5
  %385 = load i32, ptr %28, align 4, !tbaa !5
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %386
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = icmp ne i32 %388, 0
  br i1 %389, label %391, label %390

390:                                              ; preds = %380
  store i32 47, ptr %11, align 4
  br label %677

391:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %392 = load i32, ptr %28, align 4, !tbaa !5
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %393
  %395 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %394) #10
  %396 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %29, i32 0, i32 0
  store ptr %395, ptr %396, align 8
  br label %397

397:                                              ; preds = %444, %391
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %398 = load i32, ptr %28, align 4, !tbaa !5
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %399
  %401 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %400) #10
  %402 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %30, i32 0, i32 0
  store ptr %401, ptr %402, align 8
  %403 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  br i1 %403, label %405, label %404

404:                                              ; preds = %397
  store i32 48, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %446

405:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %406 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  %407 = getelementptr inbounds %"struct.std::pair", ptr %406, i32 0, i32 0
  %408 = load i32, ptr %407, align 4, !tbaa !27
  store i32 %408, ptr %31, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %409 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  %410 = getelementptr inbounds %"struct.std::pair", ptr %409, i32 0, i32 1
  %411 = load i32, ptr %410, align 4, !tbaa !29
  store i32 %411, ptr %32, align 4, !tbaa !5
  %412 = load i32, ptr %28, align 4, !tbaa !5
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %413
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = load i32, ptr %31, align 4, !tbaa !5
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %417
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = icmp slt i32 %415, %419
  br i1 %420, label %435, label %421

421:                                              ; preds = %405
  %422 = load i32, ptr %28, align 4, !tbaa !5
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %423
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = load i32, ptr %31, align 4, !tbaa !5
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %427
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = icmp eq i32 %425, %429
  br i1 %430, label %431, label %436

431:                                              ; preds = %421
  %432 = load i32, ptr %28, align 4, !tbaa !5
  %433 = load i32, ptr %31, align 4, !tbaa !5
  %434 = icmp slt i32 %432, %433
  br i1 %434, label %435, label %436

435:                                              ; preds = %431, %405
  store i32 50, ptr %11, align 4
  br label %441

436:                                              ; preds = %431, %421
  %437 = load i32, ptr %32, align 4, !tbaa !5
  %438 = load i32, ptr %31, align 4, !tbaa !5
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds [32677 x i32], ptr @dis, i64 0, i64 %439
  store i32 %437, ptr %440, align 4, !tbaa !5
  store i32 0, ptr %11, align 4
  br label %441

441:                                              ; preds = %436, %435
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  %442 = load i32, ptr %11, align 4
  switch i32 %442, label %688 [
    i32 0, label %443
    i32 50, label %444
  ]

443:                                              ; preds = %441
  br label %444

444:                                              ; preds = %443, %441
  %445 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  br label %397, !llvm.loop !30

446:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %447 = load i32, ptr %28, align 4, !tbaa !5
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %448
  %450 = load i32, ptr %449, align 4, !tbaa !5
  store i32 %450, ptr %33, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %451 = load i32, ptr %28, align 4, !tbaa !5
  %452 = sext i32 %451 to i64
  %453 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %452
  %454 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %453) #10
  %455 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %34, i32 0, i32 0
  store ptr %454, ptr %455, align 8
  br label %456

456:                                              ; preds = %623, %446
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %457 = load i32, ptr %28, align 4, !tbaa !5
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %458
  %460 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %459) #10
  %461 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %35, i32 0, i32 0
  store ptr %460, ptr %461, align 8
  %462 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br i1 %462, label %464, label %463

463:                                              ; preds = %456
  store i32 51, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  br label %625

464:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %465 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  %466 = getelementptr inbounds %"struct.std::pair", ptr %465, i32 0, i32 0
  %467 = load i32, ptr %466, align 4, !tbaa !27
  store i32 %467, ptr %36, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %468 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  %469 = getelementptr inbounds %"struct.std::pair", ptr %468, i32 0, i32 1
  %470 = load i32, ptr %469, align 4, !tbaa !29
  store i32 %470, ptr %37, align 4, !tbaa !5
  %471 = load i32, ptr %28, align 4, !tbaa !5
  %472 = sext i32 %471 to i64
  %473 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %472
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = load i32, ptr %36, align 4, !tbaa !5
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %476
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = icmp slt i32 %474, %478
  br i1 %479, label %494, label %480

480:                                              ; preds = %464
  %481 = load i32, ptr %28, align 4, !tbaa !5
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %482
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = load i32, ptr %36, align 4, !tbaa !5
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %486
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = icmp eq i32 %484, %488
  br i1 %489, label %490, label %495

490:                                              ; preds = %480
  %491 = load i32, ptr %28, align 4, !tbaa !5
  %492 = load i32, ptr %36, align 4, !tbaa !5
  %493 = icmp slt i32 %491, %492
  br i1 %493, label %494, label %495

494:                                              ; preds = %490, %464
  store i32 53, ptr %11, align 4
  br label %620

495:                                              ; preds = %490, %480
  %496 = load i32, ptr %36, align 4, !tbaa !5
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %497
  %499 = load i32, ptr %498, align 4, !tbaa !5
  %500 = icmp slt i32 %499, 0
  br i1 %500, label %501, label %504

501:                                              ; preds = %495
  %502 = load i32, ptr %33, align 4, !tbaa !5
  %503 = sub nsw i32 0, %502
  store i32 %503, ptr %33, align 4, !tbaa !5
  br label %504

504:                                              ; preds = %501, %495
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  %505 = load i32, ptr %36, align 4, !tbaa !5
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %506
  %508 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %507) #10
  %509 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %38, i32 0, i32 0
  store ptr %508, ptr %509, align 8
  br label %510

510:                                              ; preds = %608, %504
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %511 = load i32, ptr %36, align 4, !tbaa !5
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %512
  %514 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %513) #10
  %515 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %39, i32 0, i32 0
  store ptr %514, ptr %515, align 8
  %516 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  br i1 %516, label %518, label %517

517:                                              ; preds = %510
  store i32 54, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  br label %610

518:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  %519 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  %520 = getelementptr inbounds %"struct.std::pair", ptr %519, i32 0, i32 0
  %521 = load i32, ptr %520, align 4, !tbaa !27
  store i32 %521, ptr %40, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %522 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  %523 = getelementptr inbounds %"struct.std::pair", ptr %522, i32 0, i32 1
  %524 = load i32, ptr %523, align 4, !tbaa !29
  store i32 %524, ptr %41, align 4, !tbaa !5
  %525 = load i32, ptr %40, align 4, !tbaa !5
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds [32677 x i32], ptr @dis, i64 0, i64 %526
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %530, label %554

530:                                              ; preds = %518
  %531 = load i32, ptr %36, align 4, !tbaa !5
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %532
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = load i32, ptr %40, align 4, !tbaa !5
  %536 = sext i32 %535 to i64
  %537 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %536
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = icmp slt i32 %534, %538
  br i1 %539, label %554, label %540

540:                                              ; preds = %530
  %541 = load i32, ptr %36, align 4, !tbaa !5
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %542
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = load i32, ptr %40, align 4, !tbaa !5
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %546
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = icmp eq i32 %544, %548
  br i1 %549, label %550, label %555

550:                                              ; preds = %540
  %551 = load i32, ptr %36, align 4, !tbaa !5
  %552 = load i32, ptr %40, align 4, !tbaa !5
  %553 = icmp slt i32 %551, %552
  br i1 %553, label %554, label %555

554:                                              ; preds = %550, %530, %518
  store i32 56, ptr %11, align 4
  br label %605

555:                                              ; preds = %550, %540
  %556 = load i32, ptr %40, align 4, !tbaa !5
  %557 = sext i32 %556 to i64
  %558 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %557
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = icmp slt i32 %559, 0
  br i1 %560, label %561, label %564

561:                                              ; preds = %555
  %562 = load i32, ptr %33, align 4, !tbaa !5
  %563 = sub nsw i32 0, %562
  store i32 %563, ptr %33, align 4, !tbaa !5
  br label %564

564:                                              ; preds = %561, %555
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  store i32 3, ptr %42, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %565 = load i32, ptr %33, align 4, !tbaa !5
  store i32 %565, ptr %43, align 4, !tbaa !5
  %566 = load i32, ptr %28, align 4, !tbaa !5
  %567 = load i32, ptr %36, align 4, !tbaa !5
  %568 = icmp ne i32 %566, %567
  br i1 %568, label %569, label %574

569:                                              ; preds = %564
  %570 = load i32, ptr %42, align 4, !tbaa !5
  %571 = add nsw i32 %570, -1
  store i32 %571, ptr %42, align 4, !tbaa !5
  %572 = load i32, ptr %43, align 4, !tbaa !5
  %573 = mul nsw i32 %572, %570
  store i32 %573, ptr %43, align 4, !tbaa !5
  br label %574

574:                                              ; preds = %569, %564
  %575 = load i32, ptr %36, align 4, !tbaa !5
  %576 = load i32, ptr %40, align 4, !tbaa !5
  %577 = icmp ne i32 %575, %576
  br i1 %577, label %578, label %583

578:                                              ; preds = %574
  %579 = load i32, ptr %42, align 4, !tbaa !5
  %580 = add nsw i32 %579, -1
  store i32 %580, ptr %42, align 4, !tbaa !5
  %581 = load i32, ptr %43, align 4, !tbaa !5
  %582 = mul nsw i32 %581, %579
  store i32 %582, ptr %43, align 4, !tbaa !5
  br label %583

583:                                              ; preds = %578, %574
  %584 = load i32, ptr %43, align 4, !tbaa !5
  %585 = load i32, ptr %40, align 4, !tbaa !5
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds [32677 x i32], ptr @dis, i64 0, i64 %586
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = mul nsw i32 %584, %588
  %590 = load i32, ptr %37, align 4, !tbaa !5
  %591 = mul nsw i32 %589, %590
  %592 = load i32, ptr %41, align 4, !tbaa !5
  %593 = mul nsw i32 %591, %592
  %594 = load i32, ptr @ans, align 4, !tbaa !5
  %595 = add nsw i32 %594, %593
  store i32 %595, ptr @ans, align 4, !tbaa !5
  %596 = load i32, ptr %40, align 4, !tbaa !5
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %597
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = icmp slt i32 %599, 0
  br i1 %600, label %601, label %604

601:                                              ; preds = %583
  %602 = load i32, ptr %33, align 4, !tbaa !5
  %603 = sub nsw i32 0, %602
  store i32 %603, ptr %33, align 4, !tbaa !5
  br label %604

604:                                              ; preds = %601, %583
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  store i32 0, ptr %11, align 4
  br label %605

605:                                              ; preds = %604, %554
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  %606 = load i32, ptr %11, align 4
  switch i32 %606, label %688 [
    i32 0, label %607
    i32 56, label %608
  ]

607:                                              ; preds = %605
  br label %608

608:                                              ; preds = %607, %605
  %609 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  br label %510, !llvm.loop !31

610:                                              ; preds = %517
  %611 = load i32, ptr %36, align 4, !tbaa !5
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %612
  %614 = load i32, ptr %613, align 4, !tbaa !5
  %615 = icmp slt i32 %614, 0
  br i1 %615, label %616, label %619

616:                                              ; preds = %610
  %617 = load i32, ptr %33, align 4, !tbaa !5
  %618 = sub nsw i32 0, %617
  store i32 %618, ptr %33, align 4, !tbaa !5
  br label %619

619:                                              ; preds = %616, %610
  store i32 0, ptr %11, align 4
  br label %620

620:                                              ; preds = %619, %494
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  %621 = load i32, ptr %11, align 4
  switch i32 %621, label %688 [
    i32 0, label %622
    i32 53, label %623
  ]

622:                                              ; preds = %620
  br label %623

623:                                              ; preds = %622, %620
  %624 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  br label %456, !llvm.loop !32

625:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %626 = load i32, ptr %28, align 4, !tbaa !5
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %627
  %629 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %628) #10
  %630 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %44, i32 0, i32 0
  store ptr %629, ptr %630, align 8
  br label %631

631:                                              ; preds = %674, %625
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  %632 = load i32, ptr %28, align 4, !tbaa !5
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %633
  %635 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %634) #10
  %636 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %45, i32 0, i32 0
  store ptr %635, ptr %636, align 8
  %637 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  br i1 %637, label %639, label %638

638:                                              ; preds = %631
  store i32 57, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  br label %676

639:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %640 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  %641 = getelementptr inbounds %"struct.std::pair", ptr %640, i32 0, i32 0
  %642 = load i32, ptr %641, align 4, !tbaa !27
  store i32 %642, ptr %46, align 4, !tbaa !5
  %643 = load i32, ptr %28, align 4, !tbaa !5
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %644
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = load i32, ptr %46, align 4, !tbaa !5
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %648
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = icmp slt i32 %646, %650
  br i1 %651, label %666, label %652

652:                                              ; preds = %639
  %653 = load i32, ptr %28, align 4, !tbaa !5
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %654
  %656 = load i32, ptr %655, align 4, !tbaa !5
  %657 = load i32, ptr %46, align 4, !tbaa !5
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %658
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = icmp eq i32 %656, %660
  br i1 %661, label %662, label %667

662:                                              ; preds = %652
  %663 = load i32, ptr %28, align 4, !tbaa !5
  %664 = load i32, ptr %46, align 4, !tbaa !5
  %665 = icmp slt i32 %663, %664
  br i1 %665, label %666, label %667

666:                                              ; preds = %662, %639
  store i32 59, ptr %11, align 4
  br label %671

667:                                              ; preds = %662, %652
  %668 = load i32, ptr %46, align 4, !tbaa !5
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds [32677 x i32], ptr @dis, i64 0, i64 %669
  store i32 0, ptr %670, align 4, !tbaa !5
  store i32 0, ptr %11, align 4
  br label %671

671:                                              ; preds = %667, %666
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  %672 = load i32, ptr %11, align 4
  switch i32 %672, label %688 [
    i32 0, label %673
    i32 59, label %674
  ]

673:                                              ; preds = %671
  br label %674

674:                                              ; preds = %673, %671
  %675 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  br label %631, !llvm.loop !33

676:                                              ; preds = %638
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  store i32 0, ptr %11, align 4
  br label %677

677:                                              ; preds = %676, %390
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  %678 = load i32, ptr %11, align 4
  switch i32 %678, label %688 [
    i32 0, label %679
    i32 47, label %680
  ]

679:                                              ; preds = %677
  br label %680

680:                                              ; preds = %679, %677
  %681 = load i32, ptr %27, align 4, !tbaa !5
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr %27, align 4, !tbaa !5
  br label %376, !llvm.loop !34

683:                                              ; preds = %379
  %684 = load i32, ptr @ans, align 4, !tbaa !5
  %685 = and i32 %684, 1073741823
  %686 = call i32 (ptr, ...) @printf(ptr noundef @.str.5, i32 noundef %685)
  br label %199, !llvm.loop !35

687:                                              ; preds = %199
  ret i32 0

688:                                              ; preds = %677, %671, %620, %605, %441
  unreachable
}

; Function Attrs: nounwind
declare double @cos(double noundef) #6

; Function Attrs: nounwind
declare double @sin(double noundef) #6

declare i32 @__isoc99_scanf(ptr noundef, ...) #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZSt5__gcdIiET_S0_S0_(i32 noundef, i32 noundef) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIPiPFbRKiS2_EEvT_S5_T0_(ptr noundef, ptr noundef, ptr noundef) #8

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

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

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

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

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

declare i32 @printf(ptr noundef, ...) #7

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 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 #6 = { nounwind "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 = { "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 = { 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 #9 = { 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 #10 = { nounwind }

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

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


; 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"

%struct.complex = type { double, double }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<int, int>, std::allocator<std::pair<int, int>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { i32, i32 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@_ZL2pi = external hidden local_unnamed_addr global double, align 8
@t = external dso_local global i32, align 4
@n = external dso_local global i32, align 4
@f = external dso_local global [32677 x i32], align 16
@val = external dso_local local_unnamed_addr global [41 x [797 x i32]], align 16
@per1 = external dso_local local_unnamed_addr global [41 x i32], align 16
@per2 = external dso_local local_unnamed_addr global [797 x i32], align 16
@ord1 = external dso_local local_unnamed_addr global [41 x i32], align 16
@ord2 = external dso_local local_unnamed_addr global [797 x i32], align 16
@w = external dso_local local_unnamed_addr global [2049 x %struct.complex], align 16
@mu = external dso_local local_unnamed_addr global [32677 x i32], align 16
@deg = external dso_local local_unnamed_addr global [32677 x i32], align 16
@ord = external dso_local global [32677 x i32], align 16
@dis = external dso_local local_unnamed_addr global [32677 x i32], align 16
@ans = external dso_local local_unnamed_addr global i32, align 4
@e = external dso_local global [32677 x %"class.std::vector"], align 16
@.str = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z7precalcv() local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN7complexC2Edd(ptr noundef nonnull align 8 dereferenceable(16), double noundef, double noundef) unnamed_addr #4 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_Z3cmpRKiS0_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #4

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #5 {
  %1 = alloca %struct.complex, align 8
  %2 = alloca i32, align 4
  %3 = alloca %"class.std::vector", align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca %"struct.std::pair", align 8
  %7 = alloca %"struct.std::pair", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  br label %.preheader184

.preheader184:                                    ; preds = %0, %._crit_edge
  %indvars.iv = phi i64 [ 0, %0 ], [ %indvars.iv.next, %._crit_edge ]
  %16 = trunc nuw nsw i64 %indvars.iv to i32
  %17 = and i32 %16, 1
  %.not174185 = icmp eq i32 %17, 0
  br i1 %.not174185, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader184, %.lr.ph
  %.0136187 = phi i32 [ %18, %.lr.ph ], [ %16, %.preheader184 ]
  %.0137186 = phi i32 [ %19, %.lr.ph ], [ 1024, %.preheader184 ]
  %18 = lshr exact i32 %.0136187, 1
  %19 = lshr exact i32 %.0137186, 1
  %20 = and i32 %.0136187, 2
  %.not174 = icmp eq i32 %20, 0
  %21 = and i32 %.0137186, 2
  %.not175 = icmp eq i32 %21, 0
  %22 = select i1 %.not174, i1 %.not175, i1 false
  br i1 %22, label %.lr.ph, label %._crit_edge, !llvm.loop !5

._crit_edge:                                      ; preds = %.lr.ph, %.preheader184
  %.0137.lcssa = phi i32 [ 1024, %.preheader184 ], [ %19, %.lr.ph ]
  %.0136.lcssa = phi i32 [ %16, %.preheader184 ], [ %18, %.lr.ph ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %1) #10
  %23 = load double, ptr @_ZL2pi, align 8, !tbaa !7
  %24 = uitofp nneg i32 %.0137.lcssa to double
  %25 = fdiv double %23, %24
  %26 = uitofp nneg i32 %.0136.lcssa to double
  %27 = fmul double %25, %26
  %28 = call double @cos(double noundef %27) #10
  %29 = load double, ptr @_ZL2pi, align 8, !tbaa !7
  %30 = fdiv double %29, %24
  %31 = fmul double %30, %26
  %32 = call double @sin(double noundef %31) #10
  call void @_ZN7complexC2Edd(ptr noundef nonnull align 8 dereferenceable(16) %1, double noundef %28, double noundef %32)
  %33 = getelementptr inbounds [2049 x %struct.complex], ptr @w, i64 0, i64 %indvars.iv
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %1, i64 16, i1 false), !tbaa.struct !11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %1) #10
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 2048
  br i1 %exitcond.not, label %.preheader183, label %.preheader184, !llvm.loop !12

34:                                               ; preds = %.preheader183
  store i32 1, ptr getelementptr inbounds (i8, ptr @ord1, i64 4), align 4, !tbaa !13
  store i32 1, ptr getelementptr inbounds (i8, ptr @per1, i64 4), align 4, !tbaa !13
  br label %42

.preheader183:                                    ; preds = %._crit_edge, %.preheader183
  %.0138190 = phi i32 [ %40, %.preheader183 ], [ 0, %._crit_edge ]
  %.lhs.trunc = trunc nuw i32 %.0138190 to i16
  %35 = urem i16 %.lhs.trunc, 41
  %36 = zext nneg i16 %35 to i64
  %37 = urem i16 %.lhs.trunc, 797
  %38 = zext nneg i16 %37 to i64
  %39 = getelementptr inbounds [41 x [797 x i32]], ptr @val, i64 0, i64 %36, i64 %38
  store i32 %.0138190, ptr %39, align 4, !tbaa !13
  %40 = add nuw nsw i32 %.0138190, 1
  %exitcond243.not = icmp eq i32 %40, 32677
  br i1 %exitcond243.not, label %34, label %.preheader183, !llvm.loop !15

41:                                               ; preds = %42
  store i32 1, ptr getelementptr inbounds (i8, ptr @ord2, i64 4), align 4, !tbaa !13
  store i32 1, ptr getelementptr inbounds (i8, ptr @per2, i64 4), align 4, !tbaa !13
  br label %58

42:                                               ; preds = %50, %34
  %43 = phi i32 [ 1, %34 ], [ %52, %50 ]
  %indvars.iv244 = phi i64 [ 2, %34 ], [ %indvars.iv.next245.1, %50 ]
  %44 = mul nsw i32 %43, 6
  %45 = srem i32 %44, 41
  %46 = getelementptr inbounds [41 x i32], ptr @per1, i64 0, i64 %indvars.iv244
  store i32 %45, ptr %46, align 8, !tbaa !13
  %47 = sext i32 %45 to i64
  %48 = getelementptr inbounds [41 x i32], ptr @ord1, i64 0, i64 %47
  %49 = trunc nuw nsw i64 %indvars.iv244 to i32
  store i32 %49, ptr %48, align 4, !tbaa !13
  %exitcond247.not = icmp eq i64 %indvars.iv244, 40
  br i1 %exitcond247.not, label %41, label %50, !llvm.loop !16

50:                                               ; preds = %42
  %indvars.iv.next245 = or disjoint i64 %indvars.iv244, 1
  %51 = mul nsw i32 %45, 6
  %52 = srem i32 %51, 41
  %53 = getelementptr inbounds [41 x i32], ptr @per1, i64 0, i64 %indvars.iv.next245
  store i32 %52, ptr %53, align 4, !tbaa !13
  %54 = sext i32 %52 to i64
  %55 = getelementptr inbounds [41 x i32], ptr @ord1, i64 0, i64 %54
  %56 = trunc nuw nsw i64 %indvars.iv.next245 to i32
  store i32 %56, ptr %55, align 4, !tbaa !13
  %indvars.iv.next245.1 = add nuw nsw i64 %indvars.iv244, 2
  br label %42

57:                                               ; preds = %58
  store i32 1, ptr getelementptr inbounds (i8, ptr @mu, i64 4), align 4, !tbaa !13
  br label %77

58:                                               ; preds = %66, %41
  %59 = phi i32 [ 1, %41 ], [ %68, %66 ]
  %indvars.iv248 = phi i64 [ 2, %41 ], [ %indvars.iv.next249.1, %66 ]
  %60 = shl nsw i32 %59, 1
  %61 = srem i32 %60, 797
  %62 = getelementptr inbounds [797 x i32], ptr @per2, i64 0, i64 %indvars.iv248
  store i32 %61, ptr %62, align 8, !tbaa !13
  %63 = sext i32 %61 to i64
  %64 = getelementptr inbounds [797 x i32], ptr @ord2, i64 0, i64 %63
  %65 = trunc nuw nsw i64 %indvars.iv248 to i32
  store i32 %65, ptr %64, align 4, !tbaa !13
  %exitcond251.not = icmp eq i64 %indvars.iv248, 796
  br i1 %exitcond251.not, label %57, label %66, !llvm.loop !17

66:                                               ; preds = %58
  %indvars.iv.next249 = or disjoint i64 %indvars.iv248, 1
  %67 = shl nsw i32 %61, 1
  %68 = srem i32 %67, 797
  %69 = getelementptr inbounds [797 x i32], ptr @per2, i64 0, i64 %indvars.iv.next249
  store i32 %68, ptr %69, align 4, !tbaa !13
  %70 = sext i32 %68 to i64
  %71 = getelementptr inbounds [797 x i32], ptr @ord2, i64 0, i64 %70
  %72 = trunc nuw nsw i64 %indvars.iv.next249 to i32
  store i32 %72, ptr %71, align 4, !tbaa !13
  %indvars.iv.next249.1 = add nuw nsw i64 %indvars.iv248, 2
  br label %58

73:                                               ; preds = %._crit_edge196
  %74 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef nonnull @.str, ptr noundef nonnull @t)
  %75 = load i32, ptr @t, align 4, !tbaa !13
  %76 = add nsw i32 %75, -1
  store i32 %76, ptr @t, align 4, !tbaa !13
  %.not236 = icmp eq i32 %75, 0
  br i1 %.not236, label %._crit_edge239, label %.lr.ph238

77:                                               ; preds = %57, %._crit_edge196
  %indvars.iv254 = phi i64 [ 1, %57 ], [ %indvars.iv.next255, %._crit_edge196 ]
  %indvars.iv252 = phi i64 [ 2, %57 ], [ %indvars.iv.next253, %._crit_edge196 ]
  %78 = icmp ult i64 %indvars.iv254, 16339
  br i1 %78, label %.lr.ph195, label %._crit_edge196

.lr.ph195:                                        ; preds = %77
  %79 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %indvars.iv254
  br label %80

._crit_edge196:                                   ; preds = %80, %77
  %indvars.iv.next255 = add nuw nsw i64 %indvars.iv254, 1
  %indvars.iv.next253 = add nuw nsw i64 %indvars.iv252, 2
  %exitcond260.not = icmp eq i64 %indvars.iv.next255, 32677
  br i1 %exitcond260.not, label %73, label %77, !llvm.loop !18

80:                                               ; preds = %.lr.ph195, %80
  %indvars.iv256 = phi i64 [ %indvars.iv252, %.lr.ph195 ], [ %indvars.iv.next257, %80 ]
  %81 = load i32, ptr %79, align 4, !tbaa !13
  %82 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %indvars.iv256
  %83 = load i32, ptr %82, align 4, !tbaa !13
  %84 = sub nsw i32 %83, %81
  store i32 %84, ptr %82, align 4, !tbaa !13
  %indvars.iv.next257 = add nuw nsw i64 %indvars.iv256, %indvars.iv254
  %85 = icmp ult i64 %indvars.iv.next257, 32677
  br i1 %85, label %80, label %._crit_edge196, !llvm.loop !19

.lr.ph238:                                        ; preds = %73, %168
  %86 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef nonnull @.str, ptr noundef nonnull @n)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(130708) @f, i8 0, i64 130708, i1 false)
  %87 = load i32, ptr @n, align 4, !tbaa !13
  %88 = add nsw i32 %87, -1
  store i32 %88, ptr @n, align 4, !tbaa !13
  %.not164198 = icmp eq i32 %87, 0
  br i1 %.not164198, label %._crit_edge201, label %.lr.ph200

.lr.ph200:                                        ; preds = %.lr.ph238, %.lr.ph200
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #10
  %89 = call i32 (ptr, ...) @__isoc99_scanf(ptr noundef nonnull @.str, ptr noundef nonnull %2)
  %90 = load i32, ptr %2, align 4, !tbaa !13
  %91 = sext i32 %90 to i64
  %92 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %91
  %93 = load i32, ptr %92, align 4, !tbaa !13
  %94 = add nsw i32 %93, 1
  store i32 %94, ptr %92, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #10
  %95 = load i32, ptr @n, align 4, !tbaa !13
  %96 = add nsw i32 %95, -1
  store i32 %96, ptr @n, align 4, !tbaa !13
  %.not164 = icmp eq i32 %95, 0
  br i1 %.not164, label %._crit_edge201, label %.lr.ph200, !llvm.loop !20

._crit_edge201:                                   ; preds = %.lr.ph200, %.lr.ph238
  call void @_Z7precalcv()
  %97 = load i32, ptr @f, align 16, !tbaa !13
  %98 = mul nsw i32 %97, 3
  %99 = load i32, ptr getelementptr inbounds (i8, ptr @f, i64 4), align 4, !tbaa !13
  %100 = mul nsw i32 %98, %99
  %101 = mul nsw i32 %100, %99
  store i32 %101, ptr @ans, align 4, !tbaa !13
  br label %103

102:                                              ; preds = %._crit_edge205
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(130708) @deg, i8 0, i64 130708, i1 false)
  br label %112

103:                                              ; preds = %._crit_edge201, %._crit_edge205
  %indvars.iv263 = phi i64 [ 1, %._crit_edge201 ], [ %indvars.iv.next264, %._crit_edge205 ]
  %indvars.iv261 = phi i64 [ 2, %._crit_edge201 ], [ %indvars.iv.next262, %._crit_edge205 ]
  %104 = icmp ult i64 %indvars.iv263, 16339
  br i1 %104, label %.lr.ph204, label %._crit_edge205

.lr.ph204:                                        ; preds = %103
  %105 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %indvars.iv263
  %.promoted = load i32, ptr %105, align 4, !tbaa !13
  br label %106

._crit_edge205:                                   ; preds = %106, %103
  %indvars.iv.next264 = add nuw nsw i64 %indvars.iv263, 1
  %indvars.iv.next262 = add nuw nsw i64 %indvars.iv261, 2
  %exitcond269.not = icmp eq i64 %indvars.iv.next264, 32677
  br i1 %exitcond269.not, label %102, label %103, !llvm.loop !21

106:                                              ; preds = %.lr.ph204, %106
  %indvars.iv265 = phi i64 [ %indvars.iv261, %.lr.ph204 ], [ %indvars.iv.next266, %106 ]
  %107 = phi i32 [ %.promoted, %.lr.ph204 ], [ %110, %106 ]
  %108 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %indvars.iv265
  %109 = load i32, ptr %108, align 4, !tbaa !13
  %110 = add nsw i32 %107, %109
  store i32 %110, ptr %105, align 4, !tbaa !13
  %indvars.iv.next266 = add nuw nsw i64 %indvars.iv265, %indvars.iv263
  %111 = icmp ult i64 %indvars.iv.next266, 32677
  br i1 %111, label %106, label %._crit_edge205, !llvm.loop !22

112:                                              ; preds = %102, %112
  %indvars.iv270 = phi i64 [ 1, %102 ], [ %indvars.iv.next271, %112 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #10
  %113 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %indvars.iv270
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EE4swapERS3_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %113) #10
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #10
  %114 = getelementptr inbounds [32677 x i32], ptr @ord, i64 0, i64 %indvars.iv270
  %115 = trunc nuw nsw i64 %indvars.iv270 to i32
  store i32 %115, ptr %114, align 4, !tbaa !13
  %indvars.iv.next271 = add nuw nsw i64 %indvars.iv270, 1
  %exitcond273.not = icmp eq i64 %indvars.iv.next271, 32677
  br i1 %exitcond273.not, label %.preheader, label %112, !llvm.loop !23

116:                                              ; preds = %167
  call void @_ZSt4sortIPiPFbRKiS2_EEvT_S5_T0_(ptr noundef nonnull getelementptr inbounds (i8, ptr @ord, i64 4), ptr noundef nonnull getelementptr inbounds (i8, ptr @ord, i64 130708), ptr noundef nonnull @_Z3cmpRKiS0_)
  br label %174

.preheader:                                       ; preds = %112, %167
  %indvars.iv274 = phi i64 [ %indvars.iv.next275, %167 ], [ 1, %112 ]
  %117 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %indvars.iv274
  %118 = load i32, ptr %117, align 4, !tbaa !13
  %.not169 = icmp eq i32 %118, 0
  br i1 %.not169, label %167, label %.lr.ph218.preheader

.lr.ph218.preheader:                              ; preds = %.preheader
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #10
  %119 = trunc nuw nsw i64 %indvars.iv274 to i32
  store i32 %119, ptr %4, align 4, !tbaa !13
  br label %.lr.ph218

._crit_edge219:                                   ; preds = %162
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #10
  br label %167

.lr.ph218:                                        ; preds = %.lr.ph218.preheader, %162
  %.0148215 = phi i32 [ %164, %162 ], [ 1, %.lr.ph218.preheader ]
  %storemerge214 = phi i32 [ %165, %162 ], [ %119, %.lr.ph218.preheader ]
  %120 = sext i32 %storemerge214 to i64
  %121 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %120
  %122 = load i32, ptr %121, align 4, !tbaa !13
  %.not170 = icmp eq i32 %122, 0
  br i1 %.not170, label %162, label %123

123:                                              ; preds = %.lr.ph218
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  store i32 %storemerge214, ptr %5, align 4, !tbaa !13
  %124 = udiv i32 32676, %.0148215
  %.not171208 = icmp sgt i32 %storemerge214, %124
  br i1 %.not171208, label %._crit_edge213, label %.lr.ph212.preheader

.lr.ph212.preheader:                              ; preds = %123
  %125 = mul nsw i32 %.0148215, %storemerge214
  br label %.lr.ph212

._crit_edge213:                                   ; preds = %156, %123
  %126 = phi i32 [ %storemerge214, %123 ], [ %160, %156 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  br label %162

.lr.ph212:                                        ; preds = %.lr.ph212.preheader, %156
  %127 = phi i32 [ %159, %156 ], [ %storemerge214, %.lr.ph212.preheader ]
  %.0145210 = phi i32 [ %161, %156 ], [ %125, %.lr.ph212.preheader ]
  %.0147209 = phi i32 [ %157, %156 ], [ %.0148215, %.lr.ph212.preheader ]
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %128
  %130 = load i32, ptr %129, align 4, !tbaa !13
  %.not172 = icmp eq i32 %130, 0
  br i1 %.not172, label %156, label %131

131:                                              ; preds = %.lr.ph212
  %132 = call noundef i32 @_ZSt5__gcdIiET_S0_S0_(i32 noundef %.0148215, i32 noundef %.0147209)
  %133 = icmp eq i32 %132, 1
  br i1 %133, label %134, label %156

134:                                              ; preds = %131
  %135 = sext i32 %.0145210 to i64
  %136 = getelementptr inbounds [32677 x i32], ptr @f, i64 0, i64 %135
  %137 = load i32, ptr %136, align 4, !tbaa !13
  %.not173 = icmp eq i32 %137, 0
  br i1 %.not173, label %156, label %138

138:                                              ; preds = %134
  %139 = load i32, ptr %4, align 4, !tbaa !13
  %140 = sext i32 %139 to i64
  %141 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %140
  %142 = load i32, ptr %141, align 4, !tbaa !13
  %143 = add nsw i32 %142, 1
  store i32 %143, ptr %141, align 4, !tbaa !13
  %144 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %140
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  %145 = call i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %5, ptr noundef nonnull align 4 dereferenceable(4) %136)
  store i64 %145, ptr %6, align 8
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %144, ptr noundef nonnull align 4 dereferenceable(8) %6)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  %146 = load i32, ptr %4, align 4, !tbaa !13
  %147 = load i32, ptr %5, align 4, !tbaa !13
  %148 = icmp slt i32 %146, %147
  br i1 %148, label %149, label %156

149:                                              ; preds = %138
  %150 = sext i32 %147 to i64
  %151 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %150
  %152 = load i32, ptr %151, align 4, !tbaa !13
  %153 = add nsw i32 %152, 1
  store i32 %153, ptr %151, align 4, !tbaa !13
  %154 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %150
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  %155 = call i64 @_ZSt9make_pairIRiS0_ESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS2_INS3_IT0_E4typeEE6__typeEEOS4_OS9_(ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 4 dereferenceable(4) %136)
  store i64 %155, ptr %7, align 8
  call void @_ZNSt6vectorISt4pairIiiESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %154, ptr noundef nonnull align 4 dereferenceable(8) %7)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  br label %156

156:                                              ; preds = %.lr.ph212, %131, %134, %149, %138
  %157 = add nuw nsw i32 %.0147209, 1
  %158 = load i32, ptr %5, align 4, !tbaa !13
  %159 = add nsw i32 %158, %119
  store i32 %159, ptr %5, align 4, !tbaa !13
  %160 = load i32, ptr %4, align 4, !tbaa !13
  %161 = add nsw i32 %160, %.0145210
  %.not171 = icmp sgt i32 %159, %124
  br i1 %.not171, label %._crit_edge213, label %.lr.ph212, !llvm.loop !24

162:                                              ; preds = %.lr.ph218, %._crit_edge213
  %163 = phi i32 [ %storemerge214, %.lr.ph218 ], [ %126, %._crit_edge213 ]
  %164 = add nuw nsw i32 %.0148215, 1
  %165 = add nsw i32 %163, %119
  store i32 %165, ptr %4, align 4, !tbaa !13
  %166 = icmp slt i32 %165, 32677
  br i1 %166, label %.lr.ph218, label %._crit_edge219, !llvm.loop !25

167:                                              ; preds = %.preheader, %._crit_edge219
  %indvars.iv.next275 = add nuw nsw i64 %indvars.iv274, 1
  %exitcond277.not = icmp eq i64 %indvars.iv.next275, 32677
  br i1 %exitcond277.not, label %116, label %.preheader, !llvm.loop !26

168:                                              ; preds = %323
  %169 = load i32, ptr @ans, align 4, !tbaa !13
  %170 = and i32 %169, 1073741823
  %171 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5, i32 noundef %170)
  %172 = load i32, ptr @t, align 4, !tbaa !13
  %173 = add nsw i32 %172, -1
  store i32 %173, ptr @t, align 4, !tbaa !13
  %.not = icmp eq i32 %172, 0
  br i1 %.not, label %._crit_edge239, label %.lr.ph238, !llvm.loop !27

174:                                              ; preds = %116, %323
  %indvars.iv278 = phi i64 [ 1, %116 ], [ %indvars.iv.next279, %323 ]
  %175 = getelementptr inbounds [32677 x i32], ptr @ord, i64 0, i64 %indvars.iv278
  %176 = load i32, ptr %175, align 4, !tbaa !13
  %177 = sext i32 %176 to i64
  %178 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %177
  %179 = load i32, ptr %178, align 4, !tbaa !13
  %.not165 = icmp eq i32 %179, 0
  br i1 %.not165, label %323, label %180

180:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  %181 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %177
  %182 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #10
  store ptr %182, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  %183 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #10
  store ptr %183, ptr %9, align 8
  %184 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  br i1 %184, label %.lr.ph223, label %._crit_edge224

.lr.ph223:                                        ; preds = %180
  %185 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %177
  br label %191

._crit_edge224:                                   ; preds = %207, %180
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  %186 = load i32, ptr %178, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  %187 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #10
  store ptr %187, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  %188 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #10
  store ptr %188, ptr %11, align 8
  %189 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  br i1 %189, label %.lr.ph230, label %._crit_edge231

.lr.ph230:                                        ; preds = %._crit_edge224
  %190 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %177
  br label %215

191:                                              ; preds = %.lr.ph223, %207
  %192 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  %193 = load i32, ptr %192, align 4, !tbaa !28
  %194 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  %195 = getelementptr inbounds i8, ptr %194, i64 4
  %196 = load i32, ptr %195, align 4, !tbaa !30
  %197 = load i32, ptr %185, align 4, !tbaa !13
  %198 = sext i32 %193 to i64
  %199 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %198
  %200 = load i32, ptr %199, align 4, !tbaa !13
  %201 = icmp slt i32 %197, %200
  br i1 %201, label %207, label %202

202:                                              ; preds = %191
  %203 = icmp eq i32 %197, %200
  %204 = icmp slt i32 %176, %193
  %or.cond = select i1 %203, i1 %204, i1 false
  br i1 %or.cond, label %207, label %205

205:                                              ; preds = %202
  %206 = getelementptr inbounds [32677 x i32], ptr @dis, i64 0, i64 %198
  store i32 %196, ptr %206, align 4, !tbaa !13
  br label %207

207:                                              ; preds = %191, %202, %205
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  %209 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #10
  store ptr %209, ptr %9, align 8
  %210 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  br i1 %210, label %191, label %._crit_edge224, !llvm.loop !31

._crit_edge231:                                   ; preds = %302, %._crit_edge224
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #10
  %211 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #10
  store ptr %211, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #10
  %212 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #10
  store ptr %212, ptr %15, align 8
  %213 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  br i1 %213, label %.lr.ph233, label %._crit_edge234

.lr.ph233:                                        ; preds = %._crit_edge231
  %214 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %177
  br label %306

215:                                              ; preds = %.lr.ph230, %302
  %.0140228 = phi i32 [ %186, %.lr.ph230 ], [ %.7, %302 ]
  %216 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  %217 = load i32, ptr %216, align 4, !tbaa !28
  %218 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  %219 = getelementptr inbounds i8, ptr %218, i64 4
  %220 = load i32, ptr %219, align 4, !tbaa !30
  %221 = load i32, ptr %190, align 4, !tbaa !13
  %222 = sext i32 %217 to i64
  %223 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %222
  %224 = load i32, ptr %223, align 4, !tbaa !13
  %225 = icmp slt i32 %221, %224
  br i1 %225, label %302, label %226

226:                                              ; preds = %215
  %227 = icmp eq i32 %221, %224
  %228 = icmp slt i32 %176, %217
  %or.cond176 = select i1 %227, i1 %228, i1 false
  br i1 %or.cond176, label %302, label %229

229:                                              ; preds = %226
  %230 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %222
  %231 = load i32, ptr %230, align 4, !tbaa !13
  %232 = icmp slt i32 %231, 0
  %233 = sub nsw i32 0, %.0140228
  %spec.select = select i1 %232, i32 %233, i32 %.0140228
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  %234 = getelementptr inbounds [32677 x %"class.std::vector"], ptr @e, i64 0, i64 %222
  %235 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %234) #10
  store ptr %235, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  %236 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %234) #10
  store ptr %236, ptr %13, align 8
  %237 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  %238 = sub nsw i32 0, %spec.select
  br i1 %237, label %.lr.ph226, label %._crit_edge227

.lr.ph226:                                        ; preds = %229
  %.not167 = icmp eq i32 %176, %217
  %.not167.fr = freeze i1 %.not167
  %.0135 = select i1 %.not167.fr, i32 3, i32 2
  br i1 %.not167.fr, label %.lr.ph226.split.us, label %.lr.ph226.split

.lr.ph226.split.us:                               ; preds = %.lr.ph226, %265
  %239 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  %240 = load i32, ptr %239, align 4, !tbaa !28
  %241 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  %242 = getelementptr inbounds i8, ptr %241, i64 4
  %243 = load i32, ptr %242, align 4, !tbaa !30
  %244 = sext i32 %240 to i64
  %245 = getelementptr inbounds [32677 x i32], ptr @dis, i64 0, i64 %244
  %246 = load i32, ptr %245, align 4, !tbaa !13
  %.not166.us = icmp eq i32 %246, 0
  br i1 %.not166.us, label %265, label %247

247:                                              ; preds = %.lr.ph226.split.us
  %248 = load i32, ptr %223, align 4, !tbaa !13
  %249 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %244
  %250 = load i32, ptr %249, align 4, !tbaa !13
  %251 = icmp slt i32 %248, %250
  br i1 %251, label %265, label %252

252:                                              ; preds = %247
  %253 = icmp eq i32 %248, %250
  %254 = icmp slt i32 %217, %240
  %or.cond178.us = select i1 %253, i1 %254, i1 false
  br i1 %or.cond178.us, label %265, label %255

255:                                              ; preds = %252
  %256 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %244
  %257 = load i32, ptr %256, align 4, !tbaa !13
  %258 = icmp slt i32 %257, 0
  %spec.select179.us = select i1 %258, i32 %238, i32 %spec.select
  %.not168.us = icmp eq i32 %217, %240
  %259 = select i1 %.not168.us, i32 1, i32 %.0135
  %.1.us = mul i32 %259, %220
  %260 = mul i32 %.1.us, %243
  %261 = mul i32 %260, %246
  %262 = mul i32 %261, %spec.select179.us
  %263 = load i32, ptr @ans, align 4, !tbaa !13
  %264 = add nsw i32 %262, %263
  store i32 %264, ptr @ans, align 4, !tbaa !13
  br label %265

265:                                              ; preds = %255, %252, %247, %.lr.ph226.split.us
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  %267 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %234) #10
  store ptr %267, ptr %13, align 8
  %268 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  br i1 %268, label %.lr.ph226.split.us, label %._crit_edge227, !llvm.loop !32

._crit_edge227:                                   ; preds = %298, %265, %229
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  %269 = load i32, ptr %230, align 4, !tbaa !13
  %270 = icmp slt i32 %269, 0
  %spec.select177 = select i1 %270, i32 %238, i32 %spec.select
  br label %302

.lr.ph226.split:                                  ; preds = %.lr.ph226, %298
  %271 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  %272 = load i32, ptr %271, align 4, !tbaa !28
  %273 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  %274 = getelementptr inbounds i8, ptr %273, i64 4
  %275 = load i32, ptr %274, align 4, !tbaa !30
  %276 = sext i32 %272 to i64
  %277 = getelementptr inbounds [32677 x i32], ptr @dis, i64 0, i64 %276
  %278 = load i32, ptr %277, align 4, !tbaa !13
  %.not166 = icmp eq i32 %278, 0
  br i1 %.not166, label %298, label %279

279:                                              ; preds = %.lr.ph226.split
  %280 = load i32, ptr %223, align 4, !tbaa !13
  %281 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %276
  %282 = load i32, ptr %281, align 4, !tbaa !13
  %283 = icmp slt i32 %280, %282
  br i1 %283, label %298, label %284

284:                                              ; preds = %279
  %285 = icmp eq i32 %280, %282
  %286 = icmp slt i32 %217, %272
  %or.cond178 = select i1 %285, i1 %286, i1 false
  br i1 %or.cond178, label %298, label %287

287:                                              ; preds = %284
  %288 = getelementptr inbounds [32677 x i32], ptr @mu, i64 0, i64 %276
  %289 = load i32, ptr %288, align 4, !tbaa !13
  %290 = icmp slt i32 %289, 0
  %spec.select179 = select i1 %290, i32 %238, i32 %spec.select
  %291 = mul nsw i32 %spec.select179, 3
  %.not168 = icmp eq i32 %217, %272
  %292 = select i1 %.not168, i32 1, i32 %.0135
  %.1 = mul i32 %292, %220
  %293 = mul i32 %.1, %275
  %294 = mul i32 %293, %278
  %295 = mul i32 %294, %291
  %296 = load i32, ptr @ans, align 4, !tbaa !13
  %297 = add nsw i32 %295, %296
  store i32 %297, ptr @ans, align 4, !tbaa !13
  br label %298

298:                                              ; preds = %.lr.ph226.split, %279, %284, %287
  %299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  %300 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %234) #10
  store ptr %300, ptr %13, align 8
  %301 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  br i1 %301, label %.lr.ph226.split, label %._crit_edge227, !llvm.loop !32

302:                                              ; preds = %215, %226, %._crit_edge227
  %.7 = phi i32 [ %spec.select177, %._crit_edge227 ], [ %.0140228, %226 ], [ %.0140228, %215 ]
  %303 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  %304 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #10
  store ptr %304, ptr %11, align 8
  %305 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  br i1 %305, label %215, label %._crit_edge231, !llvm.loop !33

._crit_edge234:                                   ; preds = %319, %._crit_edge231
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #10
  br label %323

306:                                              ; preds = %.lr.ph233, %319
  %307 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #10
  %308 = load i32, ptr %307, align 4, !tbaa !28
  %309 = load i32, ptr %214, align 4, !tbaa !13
  %310 = sext i32 %308 to i64
  %311 = getelementptr inbounds [32677 x i32], ptr @deg, i64 0, i64 %310
  %312 = load i32, ptr %311, align 4, !tbaa !13
  %313 = icmp slt i32 %309, %312
  br i1 %313, label %319, label %314

314:                                              ; preds = %306
  %315 = icmp eq i32 %309, %312
  %316 = icmp slt i32 %176, %308
  %or.cond180 = and i1 %316, %315
  br i1 %or.cond180, label %319, label %317

317:                                              ; preds = %314
  %318 = getelementptr inbounds [32677 x i32], ptr @dis, i64 0, i64 %310
  store i32 0, ptr %318, align 4, !tbaa !13
  br label %319

319:                                              ; preds = %306, %314, %317
  %320 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIiiESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #10
  %321 = call ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #10
  store ptr %321, ptr %15, align 8
  %322 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  br i1 %322, label %306, label %._crit_edge234, !llvm.loop !34

323:                                              ; preds = %174, %._crit_edge234
  %indvars.iv.next279 = add nuw nsw i64 %indvars.iv278, 1
  %exitcond281.not = icmp eq i64 %indvars.iv.next279, 32677
  br i1 %exitcond281.not, label %168, label %174, !llvm.loop !35

._crit_edge239:                                   ; preds = %168, %73
  ret i32 0
}

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @cos(double noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sin(double noundef) local_unnamed_addr #6

; Function Attrs: nofree nounwind
declare noundef i32 @__isoc99_scanf(ptr nocapture noundef readonly, ...) local_unnamed_addr #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZSt5__gcdIiET_S0_S0_(i32 noundef, i32 noundef) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIPiPFbRKiS2_EEvT_S5_T0_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt6vectorISt4pairIiiESaIS1_EE5beginEv(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_cxxneIPSt4pairIiiESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #9

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

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #7

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
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 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 #6 = { mustprogress nofree nounwind willreturn memory(write) "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 = { nofree nounwind "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 = { 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 #9 = { 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 #10 = { 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 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = !{!8, !8, i64 0}
!8 = !{!"double", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{i64 0, i64 8, !7, i64 8, i64 8, !7}
!12 = distinct !{!12, !6}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !9, i64 0}
!15 = distinct !{!15, !6}
!16 = distinct !{!16, !6}
!17 = distinct !{!17, !6}
!18 = distinct !{!18, !6}
!19 = distinct !{!19, !6}
!20 = distinct !{!20, !6}
!21 = distinct !{!21, !6}
!22 = distinct !{!22, !6}
!23 = distinct !{!23, !6}
!24 = distinct !{!24, !6}
!25 = distinct !{!25, !6}
!26 = distinct !{!26, !6}
!27 = distinct !{!27, !6}
!28 = !{!29, !14, i64 0}
!29 = !{!"_ZTSSt4pairIiiE", !14, i64 0, !14, i64 4}
!30 = !{!29, !14, i64 4}
!31 = distinct !{!31, !6}
!32 = distinct !{!32, !6}
!33 = distinct !{!33, !6}
!34 = distinct !{!34, !6}
!35 = distinct !{!35, !6}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass