/*
ZADATAK: proizvod
JEZIK: C++
*/

#include <iostream>
#include <cstdio>
#include <string>
#include <fstream>
using namespace std;

const long MaxCifra=100005;

long mod;
long long pro;
long koliko[10];
long n;
int broj1[MaxCifra],broj2[MaxCifra];

void solve(){
  long br1=0, br2=0;
  long najmanji=0;
  
  for (long i=0; i<n/2; i++){
    while (koliko[najmanji]==0) najmanji++;
    broj2[br2]=najmanji; br2++; koliko[najmanji]--;
    while (koliko[najmanji]==0) najmanji++;
    broj1[br1]=najmanji; br1++; koliko[najmanji]--;
  }
  
  if (n%2==1){
    while (koliko[najmanji]==0) najmanji++;
    broj2[br2]=najmanji; br2++;
    long j=br2-1;
    for (long i=br1-1; i>=0; i--){
      if (broj1[i]!=broj2[j]){
        swap(broj1[i],broj2[j]);
        break;
      }
    }
  }
  else{
    for (long i=br1-1; i>=0; i--){
      if (broj1[i]!=broj2[i]){
        swap(broj1[i],broj2[i]);
        break;
      }
    }
  }
  
  long deset=1;  
  long long p1=0;
  for (int i=0; i<mod && i<br1; i++){
    p1+=deset*broj1[i];
    deset*=10;
  }
  
  deset=1;
  long long p2=0;
  for (int i=0; i<mod && i<br2; i++){
    p2+=deset*broj2[i];
    deset*=10;
  }
  
  
  deset=1;
  for (int i=1; i<=mod; i++) deset*=10;
  
  long long res=p1*p2;
  string resenje;
  for (int i=0; i<mod; i++){
    resenje=(char)('0'+(res%10)) + resenje;
    res/=10;
  }
  
  ofstream fout("proizvod.out");
  //cout << p1 << " " << p2 << "  =  " << resenje << endl;
  fout << resenje << endl;
  fout.close();
//  int asd; cin >> asd;  
}

void init(){
  memset(koliko,0,sizeof(koliko));
  FILE *f;
  f=fopen("proizvod.in","r");
  fscanf(f,"%ld %ld\n",&n,&mod);
  for (long i=0; i<n; i++){
    char ch;
    fscanf(f,"%c",&ch); 
    koliko[ch-'0']++;
  }
  fclose(f);
}

int main(){
  init();
  solve();
  return 0;
}

