/* ʕ•̀ ω • ʔ *˘︶˘*).。.:*♡ (∗ᵒ̶̶̷̀ω˂̶́∗)੭₎₎̊₊♡ (⋈◍>◡<◍) ʕ•̫͡• ʔ•̫͡•ཻʕ•̫͡•ʔ•͓͡•ʔ.•♫•♬ •♬•♫•.✿.。.:* ☆ .:**:.☆*.:。.✿ *★°*:.☆:*.°★*
●▂● ●0● ●︿● ●ω● ●﹏● ●△● ●▽● ♡⃝ ʜᴇʟʟᴏ •ᴗ• ☽⋆
∩ ∩ ̋(๑˃́ꇴ˂̀๑) ᐕ)⁾⁾ *:ஐ (๑´ᵕ`) ஐ:* *ଘ(੭*ˊᵕˋ)੭* (੭ˊᵕˋ)੭* ੈ✩˚
>(>_<)<
I I
I I ʕง•ᴥ•ʔง
IU UI
I I ꉂꉂ꒰•̤▿•̤*ૢ꒱
≧▂≦ ≧0≦ ≧︿≦ ≧ω≦ ≧﹏≦ ≧△≦ ꒰๑˃͈꒵˂͈๑꒱
☗♪叮☖叮♫ ☗铛♪ ☖♫☗♪叮☖叮♫ ☗铛♪ ☖♫☗♪叮☖叮♫ ☗铛♪ ☖♫☗♪叮☖叮♫ ☗铛♪ ☖♫
(~o▔▽▔)~o o~(▔▽▔o~) ‿︵‿︵‿︵୨˚̣̣̣͙୧ - - - -୨˚̣̣̣͙୧‿︵‿︵‿︵
*/#include<bits/stdc++.h>
using namespace std;#definelll__int128#defineendl'\n'typedeflonglong ll;typedefunsignedlonglong ull;typedef pair<ll, ll> PII;constint mod =1e9+7;inline ll read(){
ll x =0, y =1;char c =getchar();while(!isdigit(c)){if(c =='-')
y =-1;
c =getchar();}while(isdigit(c)){
x =(x <<3)+(x <<1)+(c ^48);
c =getchar();}return x *= y;}inlinevoidwrite(ll x){if(x <0)
x =-x,putchar('-');
ll sta[35], top =0;do
sta[top++]= x %10, x /=10;while(x);while(top)putchar(sta[--top]+'0');}constint N =3e5+10;
ll a[N];
ll n, k;
bool check(ll mid){
ll w =0;for(int i =1; i <= n; i++)
w +=min(mid, a[i]);return w > k;}voidMiraitowa(){
cin >> n >> k;
ll s =0;for(int i =1; i <= n; i++)
cin >> a[i], s += a[i];// cout << s << endl;if(s <= k){
cout <<"infinite"<< endl;return;}
ll l =0, r =1e18;while(l < r){
ll mid = l + r >>1;if(check(mid))
r = mid;else
l = mid +1;}
cout << l-1<< endl;}intmain(){
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);// int t;// cin>>t;// while(t--)Miraitowa();return0;};