#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
string s;
int n;
vector<string> v;
vector<int> dp;
bool makable(string a, string b) {
sort(a.begin(), a.end());
sort(b.begin(), b.end());
return a == b;
}
int check(string a, string b) {
if(!makable(a, b))
return 1e9;
int cnt = 0;
for(int i = 0; i < a.size(); i++)
if(a[i] != b[i])
cnt++;
return cnt;
}
int main() {
cin >> s >> n;
v.resize(n);
for(auto& a : v)
cin >> a;
dp.resize(s.size()+1, 1e9);
dp[0] = 0;
for(int i = 0; i <= s.size(); i++) {
for(auto& w : v) {
if(i < w.size())
continue;
string ch = s.substr(i-w.size(), w.size());
int c = check(w, ch);
dp[i] = min(dp[i], dp[i+1-w.size()]+c);
cout << i-w.size() << "\n";
cout << ch << ":" << c << "\n";
}
}
if(dp[s.size()] > s.size())
cout << -1;
else
cout << dp[s.size()];
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RyaW5nIHM7CmludCBuOwp2ZWN0b3I8c3RyaW5nPiB2Owp2ZWN0b3I8aW50PiBkcDsKCmJvb2wgbWFrYWJsZShzdHJpbmcgYSwgc3RyaW5nIGIpIHsKICAgIHNvcnQoYS5iZWdpbigpLCBhLmVuZCgpKTsKICAgIHNvcnQoYi5iZWdpbigpLCBiLmVuZCgpKTsKICAgIHJldHVybiBhID09IGI7Cn0KCmludCBjaGVjayhzdHJpbmcgYSwgc3RyaW5nIGIpIHsKICAgIGlmKCFtYWthYmxlKGEsIGIpKQogICAgICAgIHJldHVybiAxZTk7CiAgICAKICAgIGludCBjbnQgPSAwOwogICAgZm9yKGludCBpID0gMDsgaSA8IGEuc2l6ZSgpOyBpKyspICAgICAgICAKICAgICAgICBpZihhW2ldICE9IGJbaV0pCiAgICAgICAgICAgIGNudCsrOwogICAgCiAgICByZXR1cm4gY250Owp9CgppbnQgbWFpbigpIHsKICAgIGNpbiA+PiBzID4+IG47CiAgICB2LnJlc2l6ZShuKTsKICAgIGZvcihhdXRvJiBhIDogdikKICAgICAgICBjaW4gPj4gYTsKICAgIGRwLnJlc2l6ZShzLnNpemUoKSsxLCAxZTkpOwogICAgZHBbMF0gPSAwOwogICAgCiAgICBmb3IoaW50IGkgPSAwOyBpIDw9IHMuc2l6ZSgpOyBpKyspIHsKICAgICAgICBmb3IoYXV0byYgdyA6IHYpIHsKICAgICAgICAgICAgaWYoaSA8IHcuc2l6ZSgpKQogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIAogICAgICAgICAgICBzdHJpbmcgY2ggPSBzLnN1YnN0cihpLXcuc2l6ZSgpLCB3LnNpemUoKSk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpbnQgYyA9IGNoZWNrKHcsIGNoKTsgICAgICAgICAgICAKICAgICAgICAgICAgZHBbaV0gPSBtaW4oZHBbaV0sIGRwW2krMS13LnNpemUoKV0rYyk7CiAgICAgICAgICAgIGNvdXQgPDwgaS13LnNpemUoKSA8PCAiXG4iOwogICAgICAgICAgICBjb3V0IDw8IGNoIDw8ICI6IiA8PCBjIDw8ICJcbiI7CiAgICAgICAgfQogICAgfQogICAgCiAgICBpZihkcFtzLnNpemUoKV0gPiBzLnNpemUoKSkKICAgICAgICBjb3V0IDw8IC0xOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgZHBbcy5zaXplKCldOwogICAgCiAgICByZXR1cm4gMDsKfQ==