#!/usr/bin/python
import string

class table:
    def __init__(self, m, n):
        self.t = [[-1 for y in range(n)] for x in range(m)]

    def __getitem__(self, i):
        return self.t[i]
      
    def to_s(self):
      return string.join(
          [string.join(
            [`cell` for cell in row], " ") for row in self.t], "\n")

def edit_distance_ij(a, b, i, j, table):
    if i == 0:
        return (j,"e"*j)
    if j == 0:
        return (i,"l"*i)
    if not table[i-1][j-1] == -1:
        return table[i-1][j-1]
    if a[i-1] == b[j-1]:
        cij = 0
        c = ' '
    else:
        cij = 1
        c = 'c'        
    (d1, a1) = edit_distance_ij(a, b, i-1, j,   table)
    (d2, a2) = edit_distance_ij(a, b, i,   j-1, table)
    (d3, a3) = edit_distance_ij(a, b, i-1, j-1, table)
    entry = min((d1 + 1, a1 + "d"), (d2 + 1, a2 + "i"), (d3 + cij, a3 + c))
    table[i-1][j-1] = entry
    return entry

def edit_distance(astring, bstring):
    m = len(astring)
    n = len(bstring)
    return edit_distance_ij(astring, bstring, m, n, table(m, n))

import sys
if len(sys.argv) != 3:
  print "Usage: editierdistanz WORT_1 WORT_2"
else:
  print edit_distance(sys.argv[1], sys.argv[2])