program main
integer a,b,as,al,bs,bl
read *,a,b

as = ceiling(100./8.*dble(a))
al = int(100./8.*dble(a+1))
if(mod(a+1,4)==0) then
al=al-1
endif

bs = ceiling(100./10.*dble(b))
bl = int(100./10.*dble(b+1))-1

!print *,as,al
!print *,bs,bl
do i=as,al
	do j=bs,bl
    	if(i==j) then
        	print *,i
            stop
        end if
     end do
end do
print *,-1       

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

@_QQcl.a1b1673cb9174b141bd57ec9351e8895 = linkonce constant [73 x i8] c"/home/ubuntu/Downloads/TheStack_IR/Collated/Fortran/Source_2207/source.f\00"
@_QQEnvironmentDefaults = local_unnamed_addr constant ptr null

define void @_QQmain() local_unnamed_addr {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = tail call ptr @_FortranAioBeginExternalListInput(i32 -1, ptr nonnull @_QQcl.a1b1673cb9174b141bd57ec9351e8895, i32 3)
  %4 = call i1 @_FortranAioInputInteger(ptr %3, ptr nonnull %1, i32 4)
  %5 = call i1 @_FortranAioInputInteger(ptr %3, ptr nonnull %2, i32 4)
  %6 = call i32 @_FortranAioEndIoStatement(ptr %3)
  %7 = load i32, ptr %1, align 4, !tbaa !3
  %8 = sitofp i32 %7 to double
  %9 = fmul contract double %8, 1.250000e+01
  %10 = call contract double @llvm.ceil.f64(double %9)
  %11 = fptosi double %10 to i32
  %12 = add i32 %7, 1
  %13 = sitofp i32 %12 to double
  %14 = fmul contract double %13, 1.250000e+01
  %15 = fptosi double %14 to i32
  %16 = and i32 %12, 3
  %17 = icmp ne i32 %16, 0
  %18 = load i32, ptr %2, align 4, !tbaa !3
  %19 = sitofp i32 %18 to double
  %20 = fmul contract double %19, 1.000000e+01
  %21 = call contract double @llvm.ceil.f64(double %20)
  %22 = fptosi double %21 to i32
  %spec.select = zext i1 %17 to i32
  %23 = add i32 %spec.select, %15
  %24 = sub i32 %23, %11
  %25 = icmp sgt i32 %24, 0
  br i1 %25, label %.lr.ph24, label %._crit_edge25

.lr.ph24:                                         ; preds = %0
  %26 = mul i32 %18, 10
  %27 = add i32 %26, 10
  %28 = sub i32 %27, %22
  %29 = icmp sgt i32 %28, 0
  br i1 %29, label %.lr.ph.us.preheader, label %._crit_edge25

.lr.ph.us.preheader:                              ; preds = %.lr.ph24
  %30 = mul i32 %18, 10
  %31 = add i32 %30, 9
  %32 = sub i32 %31, %22
  %33 = sub i32 %11, %22
  %34 = freeze i32 %32
  br label %.lr.ph.us

.lr.ph.us:                                        ; preds = %.lr.ph.us.preheader, %._crit_edge.us
  %indvar = phi i32 [ 0, %.lr.ph.us.preheader ], [ %indvar.next, %._crit_edge.us ]
  %.01422.us = phi i32 [ %11, %.lr.ph.us.preheader ], [ %46, %._crit_edge.us ]
  %.01621.us = phi i32 [ %24, %.lr.ph.us.preheader ], [ %45, %._crit_edge.us ]
  %35 = add i32 %33, %indvar
  %umin = call i32 @llvm.umin.i32(i32 %34, i32 %35)
  %36 = add i32 %umin, 1
  %min.iters.check = icmp ult i32 %36, 33
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.us
  %n.mod.vf = and i32 %36, 31
  %37 = icmp eq i32 %n.mod.vf, 0
  %38 = select i1 %37, i32 32, i32 %n.mod.vf
  %n.vec = sub i32 %36, %38
  %ind.end = add i32 %n.vec, %22
  %ind.end30 = sub i32 %28, %n.vec
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %index.next = add nuw i32 %index, 32
  %39 = icmp eq i32 %index.next, %n.vec
  br i1 %39, label %scalar.ph.preheader, label %vector.body, !llvm.loop !7

scalar.ph.preheader:                              ; preds = %vector.body, %.lr.ph.us
  %.020.us.ph = phi i32 [ %22, %.lr.ph.us ], [ %ind.end, %vector.body ]
  %.01519.us.ph = phi i32 [ %28, %.lr.ph.us ], [ %ind.end30, %vector.body ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %41
  %.020.us = phi i32 [ %43, %41 ], [ %.020.us.ph, %scalar.ph.preheader ]
  %.01519.us = phi i32 [ %42, %41 ], [ %.01519.us.ph, %scalar.ph.preheader ]
  %40 = icmp eq i32 %.01422.us, %.020.us
  br i1 %40, label %.split.us, label %41

41:                                               ; preds = %scalar.ph
  %42 = add nsw i32 %.01519.us, -1
  %43 = add i32 %.020.us, 1
  %44 = icmp sgt i32 %.01519.us, 1
  br i1 %44, label %scalar.ph, label %._crit_edge.us, !llvm.loop !10

._crit_edge.us:                                   ; preds = %41
  %45 = add nsw i32 %.01621.us, -1
  %46 = add i32 %.01422.us, 1
  %47 = icmp sgt i32 %.01621.us, 1
  %indvar.next = add i32 %indvar, 1
  br i1 %47, label %.lr.ph.us, label %._crit_edge25

.split.us:                                        ; preds = %scalar.ph
  %48 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.a1b1673cb9174b141bd57ec9351e8895, i32 19)
  %49 = call i1 @_FortranAioOutputInteger32(ptr %48, i32 %.01422.us)
  %50 = call i32 @_FortranAioEndIoStatement(ptr %48)
  %51 = call {} @_FortranAStopStatement(i32 0, i1 false, i1 false)
  unreachable

._crit_edge25:                                    ; preds = %._crit_edge.us, %.lr.ph24, %0
  %52 = call ptr @_FortranAioBeginExternalListOutput(i32 -1, ptr nonnull @_QQcl.a1b1673cb9174b141bd57ec9351e8895, i32 24)
  %53 = call i1 @_FortranAioOutputInteger32(ptr %52, i32 -1)
  %54 = call i32 @_FortranAioEndIoStatement(ptr %52)
  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 @_FortranAioBeginExternalListOutput(i32, ptr, i32) local_unnamed_addr

declare i1 @_FortranAioOutputInteger32(ptr, i32) local_unnamed_addr

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.ceil.f64(double) #0

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

!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 = distinct !{!7, !8, !9}
!8 = !{!"llvm.loop.isvectorized", i32 1}
!9 = !{!"llvm.loop.unroll.runtime.disable"}
!10 = distinct !{!10, !9, !8}
