program main
 implicit none
 integer a(32)
 integer i

 read *,i

a=(/1, 1, 1, 2, 1, 2, 1, 5, 2, 2, 1, 5, 1, 2, 1, 14, 1, 5, 1, 5, 2, 2, 1, 15, 2, 2, 5, 4, 1, 4, 1, 51/)

print '(i0)',a(i)

endprogram main

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

@_QFEa = internal unnamed_addr global [32 x i32] undef
@_QQcl.023099a3a95abb8f589c43e680043611 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_2088/source.f\00"
@_QQro.32xi4.f762e269081fb58bc2960c69efd35269 = internal unnamed_addr constant [32 x i32] [i32 1, i32 1, i32 1, i32 2, i32 1, i32 2, i32 1, i32 5, i32 2, i32 2, i32 1, i32 5, i32 1, i32 2, i32 1, i32 14, i32 1, i32 5, i32 1, i32 5, i32 2, i32 2, i32 1, i32 15, i32 2, i32 2, i32 5, i32 4, i32 1, i32 4, i32 1, i32 51]
@_QQcl.28693029 = linkonce constant [4 x i8] c"(i0)"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

define void @_QQmain() local_unnamed_addr {
  %1 = alloca i32, align 4
  %2 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.023099a3a95abb8f589c43e680043611, i32 6)
  %3 = call i1 @_FortranAioInputInteger(ptr %2, ptr nonnull %1, i32 4)
  %4 = call i32 @_FortranAioEndIoStatement(ptr %2)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) @_QFEa, ptr noundef nonnull align 16 dereferenceable(128) @_QQro.32xi4.f762e269081fb58bc2960c69efd35269, i64 128, i1 false), !tbaa !3
  %5 = call ptr @_FortranAioBeginExternalFormattedOutput(ptr nonnull @_QQcl.28693029, i64 4, ptr null, i32 -1, ptr nonnull @_QQcl.023099a3a95abb8f589c43e680043611, i32 10)
  %6 = load i32, ptr %1, align 4, !tbaa !3
  %7 = sext i32 %6 to i64
  %8 = add nsw i64 %7, -1
  %9 = getelementptr [32 x i32], ptr @_QFEa, i64 0, i64 %8
  %10 = load i32, ptr %9, align 4, !tbaa !3
  %11 = call i1 @_FortranAioOutputInteger32(ptr %5, i32 %10)
  %12 = call i32 @_FortranAioEndIoStatement(ptr %5)
  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 ptr @_FortranAioBeginExternalFormattedOutput(ptr, i64, ptr, i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputInteger32(ptr, i32) local_unnamed_addr

; 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) #0

attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }

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