#include<map>
#include<set>
#include<list>
#include<cmath>
#include<queue>
#include<stack>
#include<cstdio>
#include<string>
#include<vector>
#include<complex>
#include<cstdlib>
#include<cstring>
#include<numeric>
#include<sstream>
#include<iostream>
#include<algorithm>
#include<functional>
#include <cstdlib>
#include <cctype>
#include <cstdio>
#include <iostream>
using namespace std;	
int main(){
	int h,w;
	while(cin>>w>>h){
	if(w==0 && h==0) break;
	int dp[200][200][4]={},ans=0;
	//0　１つ前で曲がらずに下から来て	
	//1   曲がって下から
	//2  １つ前で曲がらずに左から来る
	//3   曲がって左から
	for(int y=1;y<=h;y++){
		for(int x=1;x<=w;x++){
			if((x==1 && y==1) || (x==1 && y==2) || (x==2 && y==1)){
				dp[1][1][0]=1;
				dp[1][1][1]=1;
				dp[1][1][2]=1;
				dp[1][1][3]=1;
				dp[2][1][0]=1;
				dp[1][2][2]=1;
			}
			else{
				 dp[y][x][0] = dp[y-1][x][0]%100000 + dp[y-1][x][1]%100000;
           			 dp[y][x][1] = dp[y-1][x][2]%100000;
           			 dp[y][x][2] = dp[y][x-1][2]%100000 + dp[y][x-1][3]%100000;
          			 dp[y][x][3] = dp[y][x-1][0]%100000; 
			}
		}
	}
	ans=dp[h][w][0]+dp[h][w][1]+dp[h][w][2]+dp[h][w][3];
	cout<<ans%100000<<endl;
	}
	}