program main
    implicit none
    integer n
    character(len=10),allocatable, dimension(:) :: s
    integer i,j,k,l,sum,minus,up

    type mytype
        integer :: number
        character(len=10),dimension(200000) :: word
    end type mytype

    type(mytype) :: alpha(26,10)

    read(*,*) n
    allocate(s(n))

    do i = 1,26
        do j = 1,10
            alpha(i,j)%number = 0
        end do
    end do

    do i = 1,n
        read(*,*) s(i)
        if (s(i)(1:1) == "a") then
            k = 1
        else if (s(i)(1:1) == "b") then
            k = 2
        else if (s(i)(1:1) == "c") then
            k = 3
        else if (s(i)(1:1) == "d") then
            k = 4
        else if (s(i)(1:1) == "e") then
            k = 5
        else if (s(i)(1:1) == "f") then
            k = 6
        else if (s(i)(1:1) == "g") then
            k = 7
        else if (s(i)(1:1) == "h") then
            k = 8
        else if (s(i)(1:1) == "i") then
            k = 9
        else if (s(i)(1:1) == "j") then
            k = 10
        else if (s(i)(1:1) == "k") then
            k = 11
        else if (s(i)(1:1) == "l") then
            k = 12
        else if (s(i)(1:1) == "m") then
            k = 13
        else if (s(i)(1:1) == "n") then
            k = 14
        else if (s(i)(1:1) == "o") then
            k = 15
        else if (s(i)(1:1) == "p") then
            k = 16
        else if (s(i)(1:1) == "q") then
            k = 17
        else if (s(i)(1:1) == "r") then
            k = 18
        else if (s(i)(1:1) == "s") then
            k = 19
        else if (s(i)(1:1) == "t") then
            k = 20
        else if (s(i)(1:1) == "u") then
            k = 21
        else if (s(i)(1:1) == "v") then
            k = 22
        else if (s(i)(1:1) == "w") then
            k = 23
        else if (s(i)(1:1) == "x") then
            k = 24
        else if (s(i)(1:1) == "y") then
            k = 25
        else if (s(i)(1:1) == "z") then
            k = 26
        end if
        l = len_trim(s(i))
        alpha(k,l)%number = alpha(k,l)%number + 1
        alpha(k,l)%word(alpha(k,l)%number) = s(i)
    end do

    sum = n

    do i = 1,26
        do j = 1,10

            minus = 0
            up = alpha(i,j)%number
            if (up <= 1) then
                go to 20
            end if
            do k = 1,up
                if (alpha(i,j)%word(k) == "0") then
                    go to 10
                end if
                do l = k + 1, up
                    if(alpha(i,j)%word(k) == alpha(i,j)%word(l)) then
                        minus = minus + 1
                        alpha(i,j)%word(l) = "0"
                    end if
                end do
                10 continue
            end do
            20 continue

            sum = sum - minus

        end do
    end do

    write(*,*) sum


end program
; ModuleID = 'FIRModule'
source_filename = "FIRModule"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

%_QFTmytype = type { i32, [200000 x [10 x i8]] }

@_QFEalpha = internal global [10 x [26 x %_QFTmytype]] undef
@_QFEs.0 = internal unnamed_addr global ptr null
@_QQcl.23200eb8ab3ef1a1b0bd8eea3607fad8 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_1645/source.f\00"
@_QQcl.61 = linkonce constant [1 x i8] c"a"
@_QQcl.62 = linkonce constant [1 x i8] c"b"
@_QQcl.63 = linkonce constant [1 x i8] c"c"
@_QQcl.64 = linkonce constant [1 x i8] c"d"
@_QQcl.65 = linkonce constant [1 x i8] c"e"
@_QQcl.66 = linkonce constant [1 x i8] c"f"
@_QQcl.67 = linkonce constant [1 x i8] c"g"
@_QQcl.68 = linkonce constant [1 x i8] c"h"
@_QQcl.69 = linkonce constant [1 x i8] c"i"
@_QQcl.6A = linkonce constant [1 x i8] c"j"
@_QQcl.6B = linkonce constant [1 x i8] c"k"
@_QQcl.6C = linkonce constant [1 x i8] c"l"
@_QQcl.6D = linkonce constant [1 x i8] c"m"
@_QQcl.6E = linkonce constant [1 x i8] c"n"
@_QQcl.6F = linkonce constant [1 x i8] c"o"
@_QQcl.70 = linkonce constant [1 x i8] c"p"
@_QQcl.71 = linkonce constant [1 x i8] c"q"
@_QQcl.72 = linkonce constant [1 x i8] c"r"
@_QQcl.73 = linkonce constant [1 x i8] c"s"
@_QQcl.74 = linkonce constant [1 x i8] c"t"
@_QQcl.75 = linkonce constant [1 x i8] c"u"
@_QQcl.76 = linkonce constant [1 x i8] c"v"
@_QQcl.77 = linkonce constant [1 x i8] c"w"
@_QQcl.78 = linkonce constant [1 x i8] c"x"
@_QQcl.79 = linkonce constant [1 x i8] c"y"
@_QQcl.7A = linkonce constant [1 x i8] c"z"
@_QQcl.30 = linkonce constant [1 x i8] c"0"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #0

define void @_QQmain() local_unnamed_addr {
  %1 = alloca i32, align 4
  %2 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.23200eb8ab3ef1a1b0bd8eea3607fad8, i32 14)
  %3 = call i1 @_FortranAioInputInteger(ptr %2, ptr nonnull %1, i32 4)
  %4 = call i32 @_FortranAioEndIoStatement(ptr %2)
  %5 = load i32, ptr %1, align 4, !tbaa !3
  %6 = call i32 @llvm.smax.i32(i32 %5, i32 0)
  %7 = zext i32 %6 to i64
  %8 = mul nuw nsw i64 %7, 10
  %9 = call ptr @malloc(i64 %8)
  store ptr %9, ptr @_QFEs.0, align 8, !tbaa !7
  br label %.preheader1021

.preheader1021:                                   ; preds = %0, %.preheader1021
  %indvars.iv = phi i64 [ 1, %0 ], [ %indvars.iv.next, %.preheader1021 ]
  %10 = add nsw i64 %indvars.iv, -1
  %11 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 0, i64 %10
  store i32 0, ptr %11, align 4, !tbaa !3
  %12 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 1, i64 %10
  store i32 0, ptr %12, align 4, !tbaa !3
  %13 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 2, i64 %10
  store i32 0, ptr %13, align 4, !tbaa !3
  %14 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 3, i64 %10
  store i32 0, ptr %14, align 4, !tbaa !3
  %15 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 4, i64 %10
  store i32 0, ptr %15, align 4, !tbaa !3
  %16 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 5, i64 %10
  store i32 0, ptr %16, align 4, !tbaa !3
  %17 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 6, i64 %10
  store i32 0, ptr %17, align 4, !tbaa !3
  %18 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 7, i64 %10
  store i32 0, ptr %18, align 4, !tbaa !3
  %19 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 8, i64 %10
  store i32 0, ptr %19, align 4, !tbaa !3
  %20 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 9, i64 %10
  store i32 0, ptr %20, align 4, !tbaa !3
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 27
  br i1 %exitcond.not, label %21, label %.preheader1021

21:                                               ; preds = %.preheader1021
  %22 = icmp sgt i32 %5, 0
  br i1 %22, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %21
  %23 = zext i32 %5 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %169
  %indvars.iv1034 = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next1035, %169 ]
  %.06511023 = phi i32 [ undef, %.lr.ph.preheader ], [ %.1652, %169 ]
  %24 = call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.23200eb8ab3ef1a1b0bd8eea3607fad8, i32 24)
  %.unpack = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %25 = add nsw i64 %indvars.iv1034, -1
  %26 = getelementptr [10 x i8], ptr %.unpack, i64 %25
  %27 = call i1 @_FortranAioInputAscii(ptr %24, ptr %26, i64 10)
  %28 = call i32 @_FortranAioEndIoStatement(ptr %24)
  %.unpack683 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %29 = add nsw i64 %indvars.iv1034, -1
  %30 = getelementptr [10 x i8], ptr %.unpack683, i64 %29
  %31 = call i32 @_FortranACharacterCompareScalar1(ptr %30, ptr nonnull @_QQcl.61, i64 1, i64 1)
  %32 = icmp eq i32 %31, 0
  br i1 %32, label %158, label %33

33:                                               ; preds = %.lr.ph
  %.unpack695 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %34 = add nsw i64 %indvars.iv1034, -1
  %35 = getelementptr [10 x i8], ptr %.unpack695, i64 %34
  %36 = call i32 @_FortranACharacterCompareScalar1(ptr %35, ptr nonnull @_QQcl.62, i64 1, i64 1)
  %37 = icmp eq i32 %36, 0
  br i1 %37, label %158, label %38

38:                                               ; preds = %33
  %.unpack707 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %39 = add nsw i64 %indvars.iv1034, -1
  %40 = getelementptr [10 x i8], ptr %.unpack707, i64 %39
  %41 = call i32 @_FortranACharacterCompareScalar1(ptr %40, ptr nonnull @_QQcl.63, i64 1, i64 1)
  %42 = icmp eq i32 %41, 0
  br i1 %42, label %158, label %43

43:                                               ; preds = %38
  %.unpack719 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %44 = add nsw i64 %indvars.iv1034, -1
  %45 = getelementptr [10 x i8], ptr %.unpack719, i64 %44
  %46 = call i32 @_FortranACharacterCompareScalar1(ptr %45, ptr nonnull @_QQcl.64, i64 1, i64 1)
  %47 = icmp eq i32 %46, 0
  br i1 %47, label %158, label %48

48:                                               ; preds = %43
  %.unpack731 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %49 = add nsw i64 %indvars.iv1034, -1
  %50 = getelementptr [10 x i8], ptr %.unpack731, i64 %49
  %51 = call i32 @_FortranACharacterCompareScalar1(ptr %50, ptr nonnull @_QQcl.65, i64 1, i64 1)
  %52 = icmp eq i32 %51, 0
  br i1 %52, label %158, label %53

53:                                               ; preds = %48
  %.unpack743 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %54 = add nsw i64 %indvars.iv1034, -1
  %55 = getelementptr [10 x i8], ptr %.unpack743, i64 %54
  %56 = call i32 @_FortranACharacterCompareScalar1(ptr %55, ptr nonnull @_QQcl.66, i64 1, i64 1)
  %57 = icmp eq i32 %56, 0
  br i1 %57, label %158, label %58

58:                                               ; preds = %53
  %.unpack755 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %59 = add nsw i64 %indvars.iv1034, -1
  %60 = getelementptr [10 x i8], ptr %.unpack755, i64 %59
  %61 = call i32 @_FortranACharacterCompareScalar1(ptr %60, ptr nonnull @_QQcl.67, i64 1, i64 1)
  %62 = icmp eq i32 %61, 0
  br i1 %62, label %158, label %63

63:                                               ; preds = %58
  %.unpack767 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %64 = add nsw i64 %indvars.iv1034, -1
  %65 = getelementptr [10 x i8], ptr %.unpack767, i64 %64
  %66 = call i32 @_FortranACharacterCompareScalar1(ptr %65, ptr nonnull @_QQcl.68, i64 1, i64 1)
  %67 = icmp eq i32 %66, 0
  br i1 %67, label %158, label %68

68:                                               ; preds = %63
  %.unpack779 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %69 = add nsw i64 %indvars.iv1034, -1
  %70 = getelementptr [10 x i8], ptr %.unpack779, i64 %69
  %71 = call i32 @_FortranACharacterCompareScalar1(ptr %70, ptr nonnull @_QQcl.69, i64 1, i64 1)
  %72 = icmp eq i32 %71, 0
  br i1 %72, label %158, label %73

73:                                               ; preds = %68
  %.unpack791 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %74 = add nsw i64 %indvars.iv1034, -1
  %75 = getelementptr [10 x i8], ptr %.unpack791, i64 %74
  %76 = call i32 @_FortranACharacterCompareScalar1(ptr %75, ptr nonnull @_QQcl.6A, i64 1, i64 1)
  %77 = icmp eq i32 %76, 0
  br i1 %77, label %158, label %78

78:                                               ; preds = %73
  %.unpack803 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %79 = add nsw i64 %indvars.iv1034, -1
  %80 = getelementptr [10 x i8], ptr %.unpack803, i64 %79
  %81 = call i32 @_FortranACharacterCompareScalar1(ptr %80, ptr nonnull @_QQcl.6B, i64 1, i64 1)
  %82 = icmp eq i32 %81, 0
  br i1 %82, label %158, label %83

83:                                               ; preds = %78
  %.unpack815 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %84 = add nsw i64 %indvars.iv1034, -1
  %85 = getelementptr [10 x i8], ptr %.unpack815, i64 %84
  %86 = call i32 @_FortranACharacterCompareScalar1(ptr %85, ptr nonnull @_QQcl.6C, i64 1, i64 1)
  %87 = icmp eq i32 %86, 0
  br i1 %87, label %158, label %88

88:                                               ; preds = %83
  %.unpack827 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %89 = add nsw i64 %indvars.iv1034, -1
  %90 = getelementptr [10 x i8], ptr %.unpack827, i64 %89
  %91 = call i32 @_FortranACharacterCompareScalar1(ptr %90, ptr nonnull @_QQcl.6D, i64 1, i64 1)
  %92 = icmp eq i32 %91, 0
  br i1 %92, label %158, label %93

93:                                               ; preds = %88
  %.unpack839 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %94 = add nsw i64 %indvars.iv1034, -1
  %95 = getelementptr [10 x i8], ptr %.unpack839, i64 %94
  %96 = call i32 @_FortranACharacterCompareScalar1(ptr %95, ptr nonnull @_QQcl.6E, i64 1, i64 1)
  %97 = icmp eq i32 %96, 0
  br i1 %97, label %158, label %98

98:                                               ; preds = %93
  %.unpack851 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %99 = add nsw i64 %indvars.iv1034, -1
  %100 = getelementptr [10 x i8], ptr %.unpack851, i64 %99
  %101 = call i32 @_FortranACharacterCompareScalar1(ptr %100, ptr nonnull @_QQcl.6F, i64 1, i64 1)
  %102 = icmp eq i32 %101, 0
  br i1 %102, label %158, label %103

103:                                              ; preds = %98
  %.unpack863 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %104 = add nsw i64 %indvars.iv1034, -1
  %105 = getelementptr [10 x i8], ptr %.unpack863, i64 %104
  %106 = call i32 @_FortranACharacterCompareScalar1(ptr %105, ptr nonnull @_QQcl.70, i64 1, i64 1)
  %107 = icmp eq i32 %106, 0
  br i1 %107, label %158, label %108

108:                                              ; preds = %103
  %.unpack875 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %109 = add nsw i64 %indvars.iv1034, -1
  %110 = getelementptr [10 x i8], ptr %.unpack875, i64 %109
  %111 = call i32 @_FortranACharacterCompareScalar1(ptr %110, ptr nonnull @_QQcl.71, i64 1, i64 1)
  %112 = icmp eq i32 %111, 0
  br i1 %112, label %158, label %113

113:                                              ; preds = %108
  %.unpack887 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %114 = add nsw i64 %indvars.iv1034, -1
  %115 = getelementptr [10 x i8], ptr %.unpack887, i64 %114
  %116 = call i32 @_FortranACharacterCompareScalar1(ptr %115, ptr nonnull @_QQcl.72, i64 1, i64 1)
  %117 = icmp eq i32 %116, 0
  br i1 %117, label %158, label %118

118:                                              ; preds = %113
  %.unpack899 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %119 = add nsw i64 %indvars.iv1034, -1
  %120 = getelementptr [10 x i8], ptr %.unpack899, i64 %119
  %121 = call i32 @_FortranACharacterCompareScalar1(ptr %120, ptr nonnull @_QQcl.73, i64 1, i64 1)
  %122 = icmp eq i32 %121, 0
  br i1 %122, label %158, label %123

123:                                              ; preds = %118
  %.unpack911 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %124 = add nsw i64 %indvars.iv1034, -1
  %125 = getelementptr [10 x i8], ptr %.unpack911, i64 %124
  %126 = call i32 @_FortranACharacterCompareScalar1(ptr %125, ptr nonnull @_QQcl.74, i64 1, i64 1)
  %127 = icmp eq i32 %126, 0
  br i1 %127, label %158, label %128

128:                                              ; preds = %123
  %.unpack923 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %129 = add nsw i64 %indvars.iv1034, -1
  %130 = getelementptr [10 x i8], ptr %.unpack923, i64 %129
  %131 = call i32 @_FortranACharacterCompareScalar1(ptr %130, ptr nonnull @_QQcl.75, i64 1, i64 1)
  %132 = icmp eq i32 %131, 0
  br i1 %132, label %158, label %133

133:                                              ; preds = %128
  %.unpack935 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %134 = add nsw i64 %indvars.iv1034, -1
  %135 = getelementptr [10 x i8], ptr %.unpack935, i64 %134
  %136 = call i32 @_FortranACharacterCompareScalar1(ptr %135, ptr nonnull @_QQcl.76, i64 1, i64 1)
  %137 = icmp eq i32 %136, 0
  br i1 %137, label %158, label %138

138:                                              ; preds = %133
  %.unpack947 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %139 = add nsw i64 %indvars.iv1034, -1
  %140 = getelementptr [10 x i8], ptr %.unpack947, i64 %139
  %141 = call i32 @_FortranACharacterCompareScalar1(ptr %140, ptr nonnull @_QQcl.77, i64 1, i64 1)
  %142 = icmp eq i32 %141, 0
  br i1 %142, label %158, label %143

143:                                              ; preds = %138
  %.unpack959 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %144 = add nsw i64 %indvars.iv1034, -1
  %145 = getelementptr [10 x i8], ptr %.unpack959, i64 %144
  %146 = call i32 @_FortranACharacterCompareScalar1(ptr %145, ptr nonnull @_QQcl.78, i64 1, i64 1)
  %147 = icmp eq i32 %146, 0
  br i1 %147, label %158, label %148

148:                                              ; preds = %143
  %.unpack971 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %149 = add nsw i64 %indvars.iv1034, -1
  %150 = getelementptr [10 x i8], ptr %.unpack971, i64 %149
  %151 = call i32 @_FortranACharacterCompareScalar1(ptr %150, ptr nonnull @_QQcl.79, i64 1, i64 1)
  %152 = icmp eq i32 %151, 0
  br i1 %152, label %158, label %153

153:                                              ; preds = %148
  %.unpack983 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %154 = add nsw i64 %indvars.iv1034, -1
  %155 = getelementptr [10 x i8], ptr %.unpack983, i64 %154
  %156 = call i32 @_FortranACharacterCompareScalar1(ptr %155, ptr nonnull @_QQcl.7A, i64 1, i64 1)
  %157 = icmp eq i32 %156, 0
  %spec.select = select i1 %157, i32 26, i32 %.06511023
  br label %158

158:                                              ; preds = %153, %148, %143, %138, %133, %128, %123, %118, %113, %108, %103, %98, %93, %88, %83, %78, %73, %68, %63, %58, %53, %48, %43, %38, %33, %.lr.ph
  %.1652 = phi i32 [ 1, %.lr.ph ], [ 2, %33 ], [ 3, %38 ], [ 4, %43 ], [ 5, %48 ], [ 6, %53 ], [ 7, %58 ], [ 8, %63 ], [ 9, %68 ], [ 10, %73 ], [ 11, %78 ], [ 12, %83 ], [ 13, %88 ], [ 14, %93 ], [ 15, %98 ], [ 16, %103 ], [ 17, %108 ], [ 18, %113 ], [ 19, %118 ], [ 20, %123 ], [ 21, %128 ], [ 22, %133 ], [ 23, %138 ], [ 24, %143 ], [ 25, %148 ], [ %spec.select, %153 ]
  %.unpack995 = load ptr, ptr @_QFEs.0, align 8, !tbaa !7
  %159 = add nsw i64 %indvars.iv1034, -1
  %160 = getelementptr [10 x i8], ptr %.unpack995, i64 %159
  br label %161

161:                                              ; preds = %158, %161
  %162 = phi i64 [ 9, %158 ], [ %166, %161 ]
  %163 = getelementptr [10 x [1 x i8]], ptr %160, i64 0, i64 %162
  %164 = load i8, ptr %163, align 1, !tbaa !3
  %165 = icmp eq i8 %164, 32
  %166 = add nsw i64 %162, -1
  %167 = icmp ne i64 %162, 0
  %168 = and i1 %165, %167
  br i1 %168, label %161, label %169

169:                                              ; preds = %161
  %170 = sext i32 %.1652 to i64
  %171 = add nsw i64 %170, -1
  %172 = shl i64 %162, 32
  %sext = add i64 %172, 4294967296
  %173 = ashr exact i64 %sext, 32
  %.op = add nsw i64 %173, -1
  %174 = select i1 %165, i64 -1, i64 %.op
  %175 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 %174, i64 %171
  %176 = load i32, ptr %175, align 4, !tbaa !3
  %177 = add i32 %176, 1
  store i32 %177, ptr %175, align 4, !tbaa !3
  %178 = sext i32 %177 to i64
  %179 = add nsw i64 %178, -1
  %180 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 %174, i64 %171, i32 1, i64 %179
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(10) %180, ptr noundef nonnull align 1 dereferenceable(10) %160, i64 10, i1 false)
  %indvars.iv.next1035 = add nuw nsw i64 %indvars.iv1034, 1
  %exitcond1037.not = icmp eq i64 %indvars.iv1034, %23
  br i1 %exitcond1037.not, label %._crit_edge.loopexit, label %.lr.ph

._crit_edge.loopexit:                             ; preds = %169
  %.pre = load i32, ptr %1, align 4, !tbaa !3
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %21
  %181 = phi i32 [ %.pre, %._crit_edge.loopexit ], [ %5, %21 ]
  %182 = load i8, ptr @_QQcl.30, align 1
  br label %.preheader

.preheader:                                       ; preds = %._crit_edge, %225
  %indvars.iv1049 = phi i64 [ 1, %._crit_edge ], [ %indvars.iv.next1050, %225 ]
  %indvar = phi i64 [ 0, %._crit_edge ], [ %indvar.next, %225 ]
  %.01029 = phi i32 [ %181, %._crit_edge ], [ %224, %225 ]
  %183 = mul nuw nsw i64 %indvar, 2000004
  %184 = add nsw i64 %183, -5
  %185 = add nsw i64 %indvars.iv1049, -1
  br label %186

186:                                              ; preds = %.preheader, %.loopexit1020
  %indvars.iv1045 = phi i64 [ 1, %.preheader ], [ %indvars.iv.next1046, %.loopexit1020 ]
  %indvar1038 = phi i64 [ 0, %.preheader ], [ %indvar.next1039, %.loopexit1020 ]
  %.11028 = phi i32 [ %.01029, %.preheader ], [ %224, %.loopexit1020 ]
  %187 = mul nuw nsw i64 %indvar1038, 52000104
  %188 = add nsw i64 %184, %187
  %uglygep = getelementptr i8, ptr @_QFEalpha, i64 %188
  %189 = add nsw i64 %indvars.iv1045, -1
  %190 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 %189, i64 %185
  %191 = load i32, ptr %190, align 4, !tbaa !3
  %192 = icmp sgt i32 %191, 1
  br i1 %192, label %193, label %.loopexit1020

193:                                              ; preds = %186
  %194 = zext i32 %191 to i64
  %195 = add nuw nsw i64 %194, 1
  br label %196

196:                                              ; preds = %193, %.loopexit1019
  %indvar1040 = phi i32 [ 0, %193 ], [ %indvar.next1041, %.loopexit1019 ]
  %197 = phi i64 [ %194, %193 ], [ %222, %.loopexit1019 ]
  %198 = phi i32 [ 1, %193 ], [ %.pre1053, %.loopexit1019 ]
  %.06491027 = phi i32 [ 0, %193 ], [ %.3, %.loopexit1019 ]
  %199 = add i32 %indvar1040, 2
  %200 = sext i32 %198 to i64
  %201 = add nsw i64 %200, -1
  %202 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 %189, i64 %185, i32 1, i64 %201
  %203 = call i32 @_FortranACharacterCompareScalar1(ptr %202, ptr nonnull @_QQcl.30, i64 10, i64 1)
  %.not = icmp eq i32 %203, 0
  %.pre1053 = add i32 %198, 1
  br i1 %.not, label %.loopexit1019, label %204

204:                                              ; preds = %196
  %205 = sext i32 %.pre1053 to i64
  %206 = sub nsw i64 %195, %205
  %207 = icmp sgt i64 %206, 0
  br i1 %207, label %.lr.ph1026, label %.loopexit1019

.lr.ph1026:                                       ; preds = %204, %.loopexit
  %indvar1042 = phi i32 [ %indvar.next1043, %.loopexit ], [ 0, %204 ]
  %208 = phi i64 [ %220, %.loopexit ], [ %206, %204 ]
  %209 = phi i32 [ %219, %.loopexit ], [ %.pre1053, %204 ]
  %.16501024 = phi i32 [ %.2, %.loopexit ], [ %.06491027, %204 ]
  %210 = sext i32 %209 to i64
  %211 = add nsw i64 %210, -1
  %212 = getelementptr [10 x [26 x %_QFTmytype]], ptr @_QFEalpha, i64 0, i64 %189, i64 %185, i32 1, i64 %211
  %213 = call i32 @_FortranACharacterCompareScalar1(ptr %202, ptr %212, i64 10, i64 10)
  %214 = icmp eq i32 %213, 0
  br i1 %214, label %.loopexit.loopexit, label %.loopexit

.loopexit.loopexit:                               ; preds = %.lr.ph1026
  %215 = add i32 %199, %indvar1042
  %216 = sext i32 %215 to i64
  %217 = mul nsw i64 %216, 10
  %uglygep1044 = getelementptr i8, ptr %uglygep, i64 %217
  store i8 %182, ptr %212, align 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(9) %uglygep1044, i8 32, i64 9, i1 false), !tbaa !3
  %218 = add i32 %.16501024, 1
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %.lr.ph1026
  %.2 = phi i32 [ %.16501024, %.lr.ph1026 ], [ %218, %.loopexit.loopexit ]
  %219 = add i32 %209, 1
  %220 = add i64 %208, -1
  %221 = icmp sgt i64 %220, 0
  %indvar.next1043 = add i32 %indvar1042, 1
  br i1 %221, label %.lr.ph1026, label %.loopexit1019

.loopexit1019:                                    ; preds = %.loopexit, %196, %204
  %.3 = phi i32 [ %.06491027, %204 ], [ %.06491027, %196 ], [ %.2, %.loopexit ]
  %222 = add nsw i64 %197, -1
  %223 = icmp sgt i64 %197, 1
  %indvar.next1041 = add nuw i32 %indvar1040, 1
  br i1 %223, label %196, label %.loopexit1020

.loopexit1020:                                    ; preds = %.loopexit1019, %186
  %.4 = phi i32 [ 0, %186 ], [ %.3, %.loopexit1019 ]
  %224 = sub i32 %.11028, %.4
  %indvars.iv.next1046 = add nuw nsw i64 %indvars.iv1045, 1
  %indvar.next1039 = add nuw nsw i64 %indvar1038, 1
  %exitcond1048.not = icmp eq i64 %indvar.next1039, 10
  br i1 %exitcond1048.not, label %225, label %186

225:                                              ; preds = %.loopexit1020
  %indvars.iv.next1050 = add nuw nsw i64 %indvars.iv1049, 1
  %indvar.next = add nuw nsw i64 %indvar, 1
  %exitcond1052.not = icmp eq i64 %indvar.next, 26
  br i1 %exitcond1052.not, label %226, label %.preheader

226:                                              ; preds = %225
  %227 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.23200eb8ab3ef1a1b0bd8eea3607fad8, i32 112)
  %228 = call i1 @_FortranAioOutputInteger32(ptr %227, i32 %224)
  %229 = call i32 @_FortranAioEndIoStatement(ptr %227)
  ret void
}

declare ptr @_FortranAioBeginExternalListInput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioInputInteger(ptr, ptr, i32) local_unnamed_addr

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

declare i1 @_FortranAioInputAscii(ptr, ptr, i64) local_unnamed_addr

declare i32 @_FortranACharacterCompareScalar1(ptr, ptr, i64, i64) local_unnamed_addr

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

declare ptr @_FortranAioBeginExternalListOutput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputInteger32(ptr, i32) local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #2

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

attributes #0 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: write) }

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

!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{!4, !4, i64 0}
!4 = !{!"any data access", !5, i64 0}
!5 = !{!"any access", !6, i64 0}
!6 = !{!"Flang Type TBAA Root"}
!7 = !{!8, !8, i64 0}
!8 = !{!"descriptor member", !5, i64 0}
