#include int N, K; void makej(void) { int loc[100005]; int source[100005]; int i, j, s, cnt, x, mov, lastfree; int done, simple; cnt = 0; for(i=0; icnt) break; simple = 1; while(simple) { simple = 0; for(i=done+1; i<=cnt; i++) { if(!source[i]) { source[i] = i; source[loc[i]] = 0; loc[i] = i; mov++; simple = 1; } } /* for */ } /* while (simple) */ i = done +1; while(source[i] == i) { done++; i++; } if (i>cnt) break; lastfree = N; while(source[lastfree]) lastfree--; source[lastfree] = source[i]; loc[source[i]] = lastfree; source[i] = i; source[loc[i]] = 0; loc[i] = i; mov += 2; } if(!mov) printf("No optimization needed.\n"); else printf("We need %d move operations.\n", mov); } int main(void) { while(1) { scanf("%d %d",&N, &K); if(!N && !K) return 0; makej(); } return 0; }