#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second
#define pb push_back
int cc[105], vect[105], n;
void find(int x){
pair<vector<signed>, int> res=transaction(x);
for (auto a:res.fi)++cc[a];
while (res.fi.size()>1){
if (vect[res.fi.back()])res.se+=vect[res.fi.back()], res.fi.pop_back();
else find((x-res.se)/res.fi.size());
}
vect[res.fi[0]]=x-res.se;
if (res.fi[0]!=n-1&&!vect[res.fi[0]+1])find(vect[res.fi[0]]-1);
}
void buy_souvenirs(signed N, int x){
n=N;
find(x-1);
for (int i=1; i<n; ++i)while (cc[i]<i)transaction(vect[i]), ++cc[i];
}