#include using namespace std; const int maxn=100; struct node { int frequency,va,id;//频率,优先值,序号 node(int x=0,int y=0,int z=0)//构造函数 { frequency=x,va=y,id=z; } bool operator <(const node &b) const { if(frequency==b.frequency) return va>b.va; return frequency>b.frequency; } }; int R,N;//基数,字母个数 int n,c;//补虚拟字母后的个数,新生成字母编号 int fre[maxn],father[maxn],code[maxn]; priority_queueQ;//优先队列 int main() { int cas=1; while(cin>>R&&R) { cin>>N; memset(fre,0,sizeof(fre)); int total=0; for(int i=0;i>fre[i]; total+=fre[i]; } n=N; while((n-R)%(R-1)!=0)//补虚拟结点 n++; while(!Q.empty())//优先队列清空 Q.pop(); for(int i=0;i