#include <string>
#include <vector>
#include <unordered_set>
using namespace std;
int N;
unordered_set< int > cache[ 10 ] ;
unordered_set< int > solve( int n) {
if ( ! cache[ n] .empty ( ) ) return cache[ n] ;
int num = 0 ;
for ( int i = 0 ; i < n; i++ ) num = 10 * num + N;
unordered_set< int > res;
res.insert ( num) ;
for ( int i = 1 ; i < n; i++ ) {
int j = n - i;
auto s1 = solve( i) ;
auto s2 = solve( j) ;
for ( int n1 : s1) {
for ( int n2 : s2) {
res.insert ( n1 + n2) ;
res.insert ( n1 - n2) ;
res.insert ( n1 * n2) ;
if ( n2 ! = 0 ) res.insert ( n1 / n2) ;
}
}
}
return cache[ n] = res;
}
int solution( int _N, int number) {
N = _N;
for ( int i = 1 ; i <= 8 ; i++ ) {
solve( i) ;
if ( cache[ i] .find ( number) ! = cache[ i] .end ( ) ) return i;
}
return - 1 ;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IE47CnVub3JkZXJlZF9zZXQ8aW50PiBjYWNoZVsxMF07CnVub3JkZXJlZF9zZXQ8aW50PiBzb2x2ZShpbnQgbikgewogICAgaWYgKCFjYWNoZVtuXS5lbXB0eSgpKSByZXR1cm4gY2FjaGVbbl07CiAgICBpbnQgbnVtID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBudW0gPSAxMCAqIG51bSArIE47CiAgICB1bm9yZGVyZWRfc2V0PGludD4gcmVzOwogICAgcmVzLmluc2VydChudW0pOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspIHsKICAgICAgICBpbnQgaiA9IG4gLSBpOwogICAgICAgIGF1dG8gczEgPSBzb2x2ZShpKTsKICAgICAgICBhdXRvIHMyID0gc29sdmUoaik7CiAgICAgICAgZm9yIChpbnQgbjEgOiBzMSkgewogICAgICAgICAgICBmb3IgKGludCBuMiA6IHMyKSB7CiAgICAgICAgICAgICAgICByZXMuaW5zZXJ0KG4xICsgbjIpOwogICAgICAgICAgICAgICAgcmVzLmluc2VydChuMSAtIG4yKTsKICAgICAgICAgICAgICAgIHJlcy5pbnNlcnQobjEgKiBuMik7CiAgICAgICAgICAgICAgICBpZiAobjIgIT0gMCkgcmVzLmluc2VydChuMSAvIG4yKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBjYWNoZVtuXSA9IHJlczsKfQoKaW50IHNvbHV0aW9uKGludCBfTiwgaW50IG51bWJlcikgewogICAgTiA9IF9OOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gODsgaSsrKSB7CiAgICAgICAgc29sdmUoaSk7CiAgICAgICAgaWYgKGNhY2hlW2ldLmZpbmQobnVtYmVyKSAhPSBjYWNoZVtpXS5lbmQoKSkgcmV0dXJuIGk7CiAgICB9CiAgICByZXR1cm4gLTE7Cn0K