#include <stdio.h>
#include <stdlib.h>

int compare_int_up(const void *a,const void *b)
{
  return *(int*)a-*(int*)b;
}

int compare_int_down(const void *a,const void *b)
{
  return *(int*)b-*(int*)a;
}

int main(void){


  int a[21];
  int six[6];
  int L;
  int i,j;
  int max;
  int min;
  int temp;
  int ansi;
  int ansj;
  char c;
  
  while(1){

    scanf("%d %d",&a[0],&L);

    getchar();

    if(a[0]==0 && L==0){
      break;
    }

    for(i=0;i<6;i++){
      six[i]=0;
    }

    for(i=0;i<20;i++){

      temp=a[i];
      
      for(j=L-1;j>=0;j--){
	six[j]=temp%10;
	temp/=10;
      }

      qsort(six,L,sizeof(int),compare_int_down);
      for(j=0,max=0;j<L;j++){	
	max*=10;
	max+=six[j];
      }
    
      qsort(six,L,sizeof(int),compare_int_up);

      for(j=0,min=0;j<L;j++){	
	min*=10;
	min+=six[j];
      }
    
      a[i+1]=max-min;

    }  
  
    c=0;

    /*for(i=0;i<21;i++){
      printf("%d,",a[i]);
    }
    printf("\n");*/

    for(j=0;j<21;j++){

      temp=a[j];
      ansj=j;
      for(i=0;i<21;i++){
	if(temp==a[i] && i>j && c==0){
	  ansi=i;
	  c=1; 
	}
      }  

      if(c==1){
	break;
      }

    }

    printf("%d %d %d\n",ansj,a[ansj],ansi-ansj);

  }

  return 0;

}