program strings_of_impurity
  implicit none
  character(100000) :: s, t
  integer :: n, m, i, j, k, idx(26) = -1, nxt(100000,26) = 0
  integer(8) :: ans = 0_8
  logical :: ng(26) = .true.
  read(*,*) s
  read(*,*) t
  n = len_trim(s)
  m = len_trim(t)
  do i = 1, n
    j = ord(s(i:i))
    ng(j) = .false.
  end do
  do i = 1, m
    j = ord(t(i:i))
    if (ng(j)) then
      write(*,'(i0)') -1
      stop
    end if
  end do
  do i = n, 1, -1
    j = ord(s(i:i))
    idx(j) = n+i
  end do
  do i = n, 1, -1
    k = ord(s(i:i))
    do j = 1, 26
      if (idx(j) < 0) cycle
      nxt(i,j) = idx(j)-i
    end do
    idx(k) = i
    if (s(i:i) == t(1:1)) ans = int(i,8)
  end do
  do i = 2, m
    j = mod(ans-1_8,int(n,8))+1
    ans = ans+int(nxt(j,ord(t(i:i))),8)
  end do
  write(*,'(i0)') ans
contains
  integer function ord(s)
    character(1), intent(in) :: s
    ord = ichar(s)-96
  end
end program strings_of_impurity
; 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"

@_QFEans = internal unnamed_addr global i64 0
@_QFEidx = internal unnamed_addr global [26 x i32] [i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@_QFEng = internal unnamed_addr global [26 x i32] [i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1]
@_QFEnxt = internal unnamed_addr global [26 x [100000 x i32]] zeroinitializer
@_QFEs = internal global [100000 x i8] undef
@_QFEt = internal global [100000 x i8] undef
@_QQcl.a3055a687753aab19f798e7e2b4167a8 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_3476/source.f\00"
@_QQcl.28693029 = linkonce constant [4 x i8] c"(i0)"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

define void @_QQmain() local_unnamed_addr {
  %1 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.a3055a687753aab19f798e7e2b4167a8, i32 7)
  %2 = tail call i1 @_FortranAioInputAscii(ptr %1, ptr nonnull @_QFEs, i64 100000)
  %3 = tail call i32 @_FortranAioEndIoStatement(ptr %1)
  %4 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.a3055a687753aab19f798e7e2b4167a8, i32 8)
  %5 = tail call i1 @_FortranAioInputAscii(ptr %4, ptr nonnull @_QFEt, i64 100000)
  %6 = tail call i32 @_FortranAioEndIoStatement(ptr %4)
  br label %7

7:                                                ; preds = %0, %7
  %8 = phi i64 [ 99999, %0 ], [ %12, %7 ]
  %9 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %8
  %10 = load i8, ptr %9, align 1, !tbaa !3
  %11 = icmp eq i8 %10, 32
  %12 = add nsw i64 %8, -1
  %13 = icmp ne i64 %8, 0
  %14 = and i1 %11, %13
  br i1 %14, label %7, label %15

15:                                               ; preds = %7
  %16 = trunc i64 %8 to i32
  %17 = add i32 %16, 1
  br label %18

18:                                               ; preds = %15, %18
  %19 = phi i64 [ 99999, %15 ], [ %23, %18 ]
  %20 = getelementptr [100000 x [1 x i8]], ptr @_QFEt, i64 0, i64 %19
  %21 = load i8, ptr %20, align 1, !tbaa !3
  %22 = icmp eq i8 %21, 32
  %23 = add nsw i64 %19, -1
  %24 = icmp ne i64 %19, 0
  %25 = and i1 %22, %24
  br i1 %25, label %18, label %26

26:                                               ; preds = %18
  %27 = select i1 %11, i32 0, i32 %17
  %28 = trunc i64 %19 to i32
  %29 = add i32 %28, 1
  %30 = select i1 %22, i32 0, i32 %29
  %31 = sext i32 %27 to i64
  %32 = icmp sgt i32 %27, 0
  br i1 %32, label %.lr.ph.preheader, label %.preheader46

.lr.ph.preheader:                                 ; preds = %26
  %xtraiter = and i64 %31, 1
  %33 = icmp eq i32 %27, 1
  br i1 %33, label %.preheader46.loopexit.unr-lcssa, label %.lr.ph.preheader.new

.lr.ph.preheader.new:                             ; preds = %.lr.ph.preheader
  %unroll_iter = and i64 %31, -2
  br label %.lr.ph

.preheader46.loopexit.unr-lcssa.loopexit:         ; preds = %.lr.ph
  %34 = add nuw nsw i64 %indvars.iv, 1
  br label %.preheader46.loopexit.unr-lcssa

.preheader46.loopexit.unr-lcssa:                  ; preds = %.preheader46.loopexit.unr-lcssa.loopexit, %.lr.ph.preheader
  %indvars.iv.unr = phi i64 [ 0, %.lr.ph.preheader ], [ %34, %.preheader46.loopexit.unr-lcssa.loopexit ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.preheader46, label %.lr.ph.epil

.lr.ph.epil:                                      ; preds = %.preheader46.loopexit.unr-lcssa
  %35 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %indvars.iv.unr
  %.unpack.i.epil = load i8, ptr %35, align 1, !tbaa !3
  %36 = zext i8 %.unpack.i.epil to i64
  %37 = add nsw i64 %36, -97
  %38 = getelementptr [26 x i32], ptr @_QFEng, i64 0, i64 %37
  store i32 0, ptr %38, align 4, !tbaa !3
  br label %.preheader46

.preheader46:                                     ; preds = %.lr.ph.epil, %.preheader46.loopexit.unr-lcssa, %26
  %39 = icmp sgt i32 %30, 0
  br i1 %39, label %.lr.ph52, label %.preheader45

.lr.ph:                                           ; preds = %.lr.ph, %.lr.ph.preheader.new
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader.new ], [ %indvars.iv.next.1, %.lr.ph ]
  %niter = phi i64 [ 0, %.lr.ph.preheader.new ], [ %niter.next.1, %.lr.ph ]
  %40 = add nsw i64 %indvars.iv, -1
  %41 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %40
  %.unpack.i = load i8, ptr %41, align 1, !tbaa !3
  %42 = zext i8 %.unpack.i to i64
  %43 = add nsw i64 %42, -97
  %44 = getelementptr [26 x i32], ptr @_QFEng, i64 0, i64 %43
  store i32 0, ptr %44, align 4, !tbaa !3
  %45 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %indvars.iv
  %.unpack.i.1 = load i8, ptr %45, align 1, !tbaa !3
  %46 = zext i8 %.unpack.i.1 to i64
  %47 = add nsw i64 %46, -97
  %48 = getelementptr [26 x i32], ptr @_QFEng, i64 0, i64 %47
  store i32 0, ptr %48, align 4, !tbaa !3
  %indvars.iv.next.1 = add nuw nsw i64 %indvars.iv, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.preheader46.loopexit.unr-lcssa.loopexit, label %.lr.ph

.preheader45:                                     ; preds = %69, %.preheader46
  br i1 %32, label %.lr.ph53.preheader, label %._crit_edge

.lr.ph53.preheader:                               ; preds = %.preheader45
  %xtraiter89 = and i64 %31, 1
  %lcmp.mod90.not = icmp eq i64 %xtraiter89, 0
  br i1 %lcmp.mod90.not, label %.lr.ph53.prol.loopexit, label %.lr.ph53.prol

.lr.ph53.prol:                                    ; preds = %.lr.ph53.preheader
  %49 = add nsw i64 %31, -1
  %50 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %49
  %.unpack.i42.prol = load i8, ptr %50, align 1, !tbaa !3
  %51 = zext i8 %.unpack.i42.prol to i64
  %52 = shl i32 %27, 1
  %53 = add nsw i64 %51, -97
  %54 = getelementptr [26 x i32], ptr @_QFEidx, i64 0, i64 %53
  store i32 %52, ptr %54, align 4, !tbaa !3
  %55 = add nsw i64 %31, -1
  br label %.lr.ph53.prol.loopexit

.lr.ph53.prol.loopexit:                           ; preds = %.lr.ph53.prol, %.lr.ph53.preheader
  %.unr = phi i64 [ %31, %.lr.ph53.preheader ], [ %55, %.lr.ph53.prol ]
  %56 = icmp eq i32 %27, 1
  br i1 %56, label %.preheader, label %.lr.ph53

.lr.ph52:                                         ; preds = %.preheader46, %69
  %.03250 = phi i32 [ %70, %69 ], [ 1, %.preheader46 ]
  %57 = sext i32 %.03250 to i64
  %58 = add nsw i64 %57, -1
  %59 = getelementptr [100000 x [1 x i8]], ptr @_QFEt, i64 0, i64 %58
  %.unpack.i41 = load i8, ptr %59, align 1, !tbaa !3
  %60 = zext i8 %.unpack.i41 to i64
  %61 = add nsw i64 %60, -97
  %62 = getelementptr [26 x i32], ptr @_QFEng, i64 0, i64 %61
  %63 = load i32, ptr %62, align 4, !tbaa !3
  %.not = icmp eq i32 %63, 0
  br i1 %.not, label %69, label %64

64:                                               ; preds = %.lr.ph52
  %65 = tail call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28693029, i64 4, ptr null, i32 -1, ptr nonnull @_QQcl.a3055a687753aab19f798e7e2b4167a8, i32 18)
  %66 = tail call i1 @_FortranAioOutputInteger32(ptr %65, i32 -1)
  %67 = tail call i32 @_FortranAioEndIoStatement(ptr %65)
  %68 = tail call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

69:                                               ; preds = %.lr.ph52
  %70 = add nuw i32 %.03250, 1
  %exitcond64.not = icmp eq i32 %.03250, %30
  br i1 %exitcond64.not, label %.preheader45, label %.lr.ph52

.preheader:                                       ; preds = %.lr.ph53, %.lr.ph53.prol.loopexit
  br i1 %32, label %.lr.ph54, label %._crit_edge

.lr.ph53:                                         ; preds = %.lr.ph53.prol.loopexit, %.lr.ph53
  %71 = phi i64 [ %87, %.lr.ph53 ], [ %.unr, %.lr.ph53.prol.loopexit ]
  %indvars65 = trunc i64 %71 to i32
  %sext76 = shl i64 %71, 32
  %72 = ashr exact i64 %sext76, 32
  %73 = add nsw i64 %72, -1
  %74 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %73
  %.unpack.i42 = load i8, ptr %74, align 1, !tbaa !3
  %75 = zext i8 %.unpack.i42 to i64
  %76 = add i32 %27, %indvars65
  %77 = add nsw i64 %75, -97
  %78 = getelementptr [26 x i32], ptr @_QFEidx, i64 0, i64 %77
  store i32 %76, ptr %78, align 4, !tbaa !3
  %79 = add nsw i64 %71, -1
  %indvars65.1 = trunc i64 %79 to i32
  %sext76.1 = shl i64 %79, 32
  %80 = ashr exact i64 %sext76.1, 32
  %81 = add nsw i64 %80, -1
  %82 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %81
  %.unpack.i42.1 = load i8, ptr %82, align 1, !tbaa !3
  %83 = zext i8 %.unpack.i42.1 to i64
  %84 = add i32 %27, %indvars65.1
  %85 = add nsw i64 %83, -97
  %86 = getelementptr [26 x i32], ptr @_QFEidx, i64 0, i64 %85
  store i32 %84, ptr %86, align 4, !tbaa !3
  %87 = add nsw i64 %71, -2
  %88 = icmp sgt i64 %71, 2
  br i1 %88, label %.lr.ph53, label %.preheader

.lr.ph54:                                         ; preds = %.preheader, %255
  %89 = phi i64 [ %256, %255 ], [ %31, %.preheader ]
  %indvars70 = trunc i64 %89 to i32
  %sext75 = shl i64 %89, 32
  %90 = ashr exact i64 %sext75, 32
  %91 = add nsw i64 %90, -1
  %92 = getelementptr [100000 x [1 x i8]], ptr @_QFEs, i64 0, i64 %91
  %.unpack.i43 = load i8, ptr %92, align 1, !tbaa !3
  %93 = load i32, ptr @_QFEidx, align 16, !tbaa !3
  %94 = icmp sgt i32 %93, -1
  br i1 %94, label %95, label %98

95:                                               ; preds = %.lr.ph54
  %96 = sub i32 %93, %indvars70
  %97 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 0, i64 %91
  store i32 %96, ptr %97, align 4, !tbaa !3
  br label %98

98:                                               ; preds = %95, %.lr.ph54
  %99 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 1), align 4, !tbaa !3
  %100 = icmp sgt i32 %99, -1
  br i1 %100, label %101, label %104

101:                                              ; preds = %98
  %102 = sub i32 %99, %indvars70
  %103 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 1, i64 %91
  store i32 %102, ptr %103, align 4, !tbaa !3
  br label %104

104:                                              ; preds = %101, %98
  %105 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 2), align 8, !tbaa !3
  %106 = icmp sgt i32 %105, -1
  br i1 %106, label %107, label %110

107:                                              ; preds = %104
  %108 = sub i32 %105, %indvars70
  %109 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 2, i64 %91
  store i32 %108, ptr %109, align 4, !tbaa !3
  br label %110

110:                                              ; preds = %107, %104
  %111 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 3), align 4, !tbaa !3
  %112 = icmp sgt i32 %111, -1
  br i1 %112, label %113, label %116

113:                                              ; preds = %110
  %114 = sub i32 %111, %indvars70
  %115 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 3, i64 %91
  store i32 %114, ptr %115, align 4, !tbaa !3
  br label %116

116:                                              ; preds = %113, %110
  %117 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 4), align 16, !tbaa !3
  %118 = icmp sgt i32 %117, -1
  br i1 %118, label %119, label %122

119:                                              ; preds = %116
  %120 = sub i32 %117, %indvars70
  %121 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 4, i64 %91
  store i32 %120, ptr %121, align 4, !tbaa !3
  br label %122

122:                                              ; preds = %119, %116
  %123 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 5), align 4, !tbaa !3
  %124 = icmp sgt i32 %123, -1
  br i1 %124, label %125, label %128

125:                                              ; preds = %122
  %126 = sub i32 %123, %indvars70
  %127 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 5, i64 %91
  store i32 %126, ptr %127, align 4, !tbaa !3
  br label %128

128:                                              ; preds = %125, %122
  %129 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 6), align 8, !tbaa !3
  %130 = icmp sgt i32 %129, -1
  br i1 %130, label %131, label %134

131:                                              ; preds = %128
  %132 = sub i32 %129, %indvars70
  %133 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 6, i64 %91
  store i32 %132, ptr %133, align 4, !tbaa !3
  br label %134

134:                                              ; preds = %131, %128
  %135 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 7), align 4, !tbaa !3
  %136 = icmp sgt i32 %135, -1
  br i1 %136, label %137, label %140

137:                                              ; preds = %134
  %138 = sub i32 %135, %indvars70
  %139 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 7, i64 %91
  store i32 %138, ptr %139, align 4, !tbaa !3
  br label %140

140:                                              ; preds = %137, %134
  %141 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 8), align 16, !tbaa !3
  %142 = icmp sgt i32 %141, -1
  br i1 %142, label %143, label %146

143:                                              ; preds = %140
  %144 = sub i32 %141, %indvars70
  %145 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 8, i64 %91
  store i32 %144, ptr %145, align 4, !tbaa !3
  br label %146

146:                                              ; preds = %143, %140
  %147 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 9), align 4, !tbaa !3
  %148 = icmp sgt i32 %147, -1
  br i1 %148, label %149, label %152

149:                                              ; preds = %146
  %150 = sub i32 %147, %indvars70
  %151 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 9, i64 %91
  store i32 %150, ptr %151, align 4, !tbaa !3
  br label %152

152:                                              ; preds = %149, %146
  %153 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 10), align 8, !tbaa !3
  %154 = icmp sgt i32 %153, -1
  br i1 %154, label %155, label %158

155:                                              ; preds = %152
  %156 = sub i32 %153, %indvars70
  %157 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 10, i64 %91
  store i32 %156, ptr %157, align 4, !tbaa !3
  br label %158

158:                                              ; preds = %155, %152
  %159 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 11), align 4, !tbaa !3
  %160 = icmp sgt i32 %159, -1
  br i1 %160, label %161, label %164

161:                                              ; preds = %158
  %162 = sub i32 %159, %indvars70
  %163 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 11, i64 %91
  store i32 %162, ptr %163, align 4, !tbaa !3
  br label %164

164:                                              ; preds = %161, %158
  %165 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 12), align 16, !tbaa !3
  %166 = icmp sgt i32 %165, -1
  br i1 %166, label %167, label %170

167:                                              ; preds = %164
  %168 = sub i32 %165, %indvars70
  %169 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 12, i64 %91
  store i32 %168, ptr %169, align 4, !tbaa !3
  br label %170

170:                                              ; preds = %167, %164
  %171 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 13), align 4, !tbaa !3
  %172 = icmp sgt i32 %171, -1
  br i1 %172, label %173, label %176

173:                                              ; preds = %170
  %174 = sub i32 %171, %indvars70
  %175 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 13, i64 %91
  store i32 %174, ptr %175, align 4, !tbaa !3
  br label %176

176:                                              ; preds = %173, %170
  %177 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 14), align 8, !tbaa !3
  %178 = icmp sgt i32 %177, -1
  br i1 %178, label %179, label %182

179:                                              ; preds = %176
  %180 = sub i32 %177, %indvars70
  %181 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 14, i64 %91
  store i32 %180, ptr %181, align 4, !tbaa !3
  br label %182

182:                                              ; preds = %179, %176
  %183 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 15), align 4, !tbaa !3
  %184 = icmp sgt i32 %183, -1
  br i1 %184, label %185, label %188

185:                                              ; preds = %182
  %186 = sub i32 %183, %indvars70
  %187 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 15, i64 %91
  store i32 %186, ptr %187, align 4, !tbaa !3
  br label %188

188:                                              ; preds = %185, %182
  %189 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 16), align 16, !tbaa !3
  %190 = icmp sgt i32 %189, -1
  br i1 %190, label %191, label %194

191:                                              ; preds = %188
  %192 = sub i32 %189, %indvars70
  %193 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 16, i64 %91
  store i32 %192, ptr %193, align 4, !tbaa !3
  br label %194

194:                                              ; preds = %191, %188
  %195 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 17), align 4, !tbaa !3
  %196 = icmp sgt i32 %195, -1
  br i1 %196, label %197, label %200

197:                                              ; preds = %194
  %198 = sub i32 %195, %indvars70
  %199 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 17, i64 %91
  store i32 %198, ptr %199, align 4, !tbaa !3
  br label %200

200:                                              ; preds = %197, %194
  %201 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 18), align 8, !tbaa !3
  %202 = icmp sgt i32 %201, -1
  br i1 %202, label %203, label %206

203:                                              ; preds = %200
  %204 = sub i32 %201, %indvars70
  %205 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 18, i64 %91
  store i32 %204, ptr %205, align 4, !tbaa !3
  br label %206

206:                                              ; preds = %203, %200
  %207 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 19), align 4, !tbaa !3
  %208 = icmp sgt i32 %207, -1
  br i1 %208, label %209, label %212

209:                                              ; preds = %206
  %210 = sub i32 %207, %indvars70
  %211 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 19, i64 %91
  store i32 %210, ptr %211, align 4, !tbaa !3
  br label %212

212:                                              ; preds = %209, %206
  %213 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 20), align 16, !tbaa !3
  %214 = icmp sgt i32 %213, -1
  br i1 %214, label %215, label %218

215:                                              ; preds = %212
  %216 = sub i32 %213, %indvars70
  %217 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 20, i64 %91
  store i32 %216, ptr %217, align 4, !tbaa !3
  br label %218

218:                                              ; preds = %215, %212
  %219 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 21), align 4, !tbaa !3
  %220 = icmp sgt i32 %219, -1
  br i1 %220, label %221, label %224

221:                                              ; preds = %218
  %222 = sub i32 %219, %indvars70
  %223 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 21, i64 %91
  store i32 %222, ptr %223, align 4, !tbaa !3
  br label %224

224:                                              ; preds = %221, %218
  %225 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 22), align 8, !tbaa !3
  %226 = icmp sgt i32 %225, -1
  br i1 %226, label %227, label %230

227:                                              ; preds = %224
  %228 = sub i32 %225, %indvars70
  %229 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 22, i64 %91
  store i32 %228, ptr %229, align 4, !tbaa !3
  br label %230

230:                                              ; preds = %227, %224
  %231 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 23), align 4, !tbaa !3
  %232 = icmp sgt i32 %231, -1
  br i1 %232, label %233, label %236

233:                                              ; preds = %230
  %234 = sub i32 %231, %indvars70
  %235 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 23, i64 %91
  store i32 %234, ptr %235, align 4, !tbaa !3
  br label %236

236:                                              ; preds = %233, %230
  %237 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 24), align 16, !tbaa !3
  %238 = icmp sgt i32 %237, -1
  br i1 %238, label %239, label %242

239:                                              ; preds = %236
  %240 = sub i32 %237, %indvars70
  %241 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 24, i64 %91
  store i32 %240, ptr %241, align 4, !tbaa !3
  br label %242

242:                                              ; preds = %239, %236
  %243 = load i32, ptr getelementptr inbounds ([26 x i32], ptr @_QFEidx, i64 0, i64 25), align 4, !tbaa !3
  %244 = icmp sgt i32 %243, -1
  br i1 %244, label %245, label %248

245:                                              ; preds = %242
  %246 = sub i32 %243, %indvars70
  %247 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 25, i64 %91
  store i32 %246, ptr %247, align 4, !tbaa !3
  br label %248

248:                                              ; preds = %245, %242
  %249 = zext i8 %.unpack.i43 to i64
  %250 = add nsw i64 %249, -97
  %251 = getelementptr [26 x i32], ptr @_QFEidx, i64 0, i64 %250
  store i32 %indvars70, ptr %251, align 4, !tbaa !3
  %252 = tail call i32 @_FortranACharacterCompareScalar1(ptr nonnull %92, ptr nonnull @_QFEt, i64 1, i64 1)
  %253 = icmp eq i32 %252, 0
  br i1 %253, label %254, label %255

254:                                              ; preds = %248
  store i64 %90, ptr @_QFEans, align 8, !tbaa !3
  br label %255

255:                                              ; preds = %254, %248
  %256 = add nsw i64 %89, -1
  %257 = icmp sgt i64 %89, 1
  br i1 %257, label %.lr.ph54, label %._crit_edge

._crit_edge:                                      ; preds = %255, %.preheader45, %.preheader
  %258 = icmp sgt i32 %30, 1
  br i1 %258, label %.lr.ph56.preheader, label %274

.lr.ph56.preheader:                               ; preds = %._crit_edge
  %_QFEans.promoted = load i64, ptr @_QFEans, align 8, !tbaa !3
  %259 = zext i32 %30 to i64
  br label %.lr.ph56

.lr.ph56:                                         ; preds = %.lr.ph56.preheader, %.lr.ph56
  %indvars.iv71 = phi i64 [ 2, %.lr.ph56.preheader ], [ %indvars.iv.next72, %.lr.ph56 ]
  %260 = phi i64 [ %_QFEans.promoted, %.lr.ph56.preheader ], [ %273, %.lr.ph56 ]
  %261 = add i64 %260, -1
  %262 = srem i64 %261, %31
  %263 = shl i64 %262, 32
  %sext = add i64 %263, 4294967296
  %264 = ashr exact i64 %sext, 32
  %265 = add nsw i64 %264, -1
  %266 = add nsw i64 %indvars.iv71, -1
  %267 = getelementptr [100000 x [1 x i8]], ptr @_QFEt, i64 0, i64 %266
  %.unpack.i44 = load i8, ptr %267, align 1, !tbaa !3
  %268 = zext i8 %.unpack.i44 to i64
  %269 = add nsw i64 %268, -97
  %270 = getelementptr [26 x [100000 x i32]], ptr @_QFEnxt, i64 0, i64 %269, i64 %265
  %271 = load i32, ptr %270, align 4, !tbaa !3
  %272 = sext i32 %271 to i64
  %273 = add i64 %260, %272
  %indvars.iv.next72 = add nuw nsw i64 %indvars.iv71, 1
  %exitcond74.not = icmp eq i64 %indvars.iv71, %259
  br i1 %exitcond74.not, label %._crit_edge57, label %.lr.ph56

._crit_edge57:                                    ; preds = %.lr.ph56
  store i64 %273, ptr @_QFEans, align 8, !tbaa !3
  br label %274

274:                                              ; preds = %._crit_edge57, %._crit_edge
  %275 = tail call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28693029, i64 4, ptr null, i32 -1, ptr nonnull @_QQcl.a3055a687753aab19f798e7e2b4167a8, i32 39)
  %276 = load i64, ptr @_QFEans, align 8, !tbaa !3
  %277 = tail call i1 @_FortranAioOutputInteger64(ptr %275, i64 %276)
  %278 = tail call i32 @_FortranAioEndIoStatement(ptr %275)
  ret void
}

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read)
define i32 @_QFPord(ptr nocapture readonly %0, i64 %1) local_unnamed_addr #0 {
  %.unpack = load i8, ptr %0, align 1, !tbaa !3
  %3 = zext i8 %.unpack to i32
  %4 = add nsw i32 %3, -96
  ret i32 %4
}

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

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

declare i32 @_FortranAioEndIoStatement(ptr) local_unnamed_addr

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

declare i1 @_FortranAioOutputInteger32(ptr, i32) local_unnamed_addr

declare {} @_FortranAStopStatement(i32, i1, i1) local_unnamed_addr

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

declare i1 @_FortranAioOutputInteger64(ptr, i64) local_unnamed_addr

attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) }

!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"}
