#include <iostream>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
    int S, E;
    cin >> S >> E;
    
    vector<int> palindromes;
    for(int i = 1; i <= 100000; i++) {
        int tmp = i;
        int reverse_number = 0;
        while(tmp > 0) {
            int cifra = tmp % 10;
            reverse_number = (reverse_number * 10) + cifra;
            tmp /= 10;
        }
        
        if(reverse_number == i) {
            palindromes.push_back(i);
        }
    }
    
    queue<int> q;
    q.push(S);
    q.push(0);
    vector<bool> visited(100000, false);
    
    while(!q.empty()) {
        int c_number = q.front();
        q.pop();
        int cnt = q.front();
        q.pop();
        
        if(c_number == E) {
            cout << cnt << endl;
            break;
        }
        
        for(int i = 0; i < palindromes.size(); i++) {
            if(palindromes[i] < c_number and c_number + palindromes[i] <= E and !visited[c_number + palindromes[i]]) {
                
                q.push(c_number + palindromes[i]);
                q.push(cnt + 1);
                visited[c_number + palindromes[i]] = true;
            }
        }
    }
    return 0;
}
