#include<iostream>
#include<string>
using namespace std;
int flag=0;
/*
主要思想:从左到右将模式串P与字符串text逐一比较,当遇到*号时,分两条路走,一条是跳过*号(即*号匹配0次),另一条*当前匹配一次,且保留到下一次的匹配;
难点:遇到*号时的抉择,模式串结尾是*号时,总会漏掉一个长度,需要特别注意
*/
bool pattStr(string& P,string& text,int curr_p,int curr_t,int& start,int curr_len){
if(curr_p >= P.size()){
if(P[curr_p-1]=='*') curr_len++;//当模式串结尾是*时,总会漏掉一个长度
cout<<start<<" "<<curr_len<<endl;
flag =1;
return true;
}
if(curr_t>= text.size()){
return false;
}
if(P[curr_p]=='*'){
pattStr(P,text,curr_p+1,curr_t,start,curr_len);//*匹配0个字符,即直接跳过*
pattStr(P,text,curr_p,curr_t+1,start,curr_len+1);//*匹配一个字符,*保留,进入下一次比较
return true;
}else if(P[curr_p]==text[curr_t]){//当当前符号不为*时,直接比较字符
pattStr(P,text,curr_p+1,curr_t+1,start,curr_len+1);
return true;
}else{//当前字符不相等,结束本次递归
return false;
}
}
int main(){
string P,text;
cin>>P>>text;
for(int i=0;i<text.size();i++){
pattStr(P,text,0,i,i,0);
}
if(flag==0){
cout<<-1<<" "<<0<<endl;
}
return 0;
}