#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <cctype>
int main( )
{
std:: string words;
std:: vector < std:: string > dWords;
while ( std:: cin >> words)
{
// remove punctuation
words.erase ( std:: remove_if ( words.begin ( ) , words.end ( ) , [ ] ( char ch)
{ return :: ispunct ( static_cast < int > ( ch) ) ; } ) , words.end ( ) ) ;
dWords.push_back ( words) ;
}
// partition D from non-D words
auto iter = std:: partition ( dWords.begin ( ) , dWords.end ( ) , [ ] ( const std:: string & s)
{ return toupper ( s[ 0 ] ) == 'D' ; } ) ;
// output results
std:: cout << "The number of words starting with D: " << std:: distance ( dWords.begin ( ) , iter) << "\n " ;
std:: cout << "Here are the words:\n " ;
std:: copy ( dWords.begin ( ) , iter, std:: ostream_iterator < std:: string > ( std:: cout , " " ) ) ;
std:: cout << "\n \n The number of words not starting with D: " << std:: distance ( iter, dWords.end ( ) ) << "\n " ;
std:: cout << "Here are the words:\n " ;
std:: copy ( iter, dWords.end ( ) , std:: ostream_iterator < std:: string > ( std:: cout , " " ) ) ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiNpbmNsdWRlIDxhbGdvcml0aG0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8Y2N0eXBlPgoKaW50IG1haW4oKQp7CiAgICBzdGQ6OnN0cmluZyB3b3JkczsKICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBkV29yZHM7ICAKICAgIHdoaWxlKHN0ZDo6Y2luID4+IHdvcmRzKQogICAgewogICAgCS8vIHJlbW92ZSBwdW5jdHVhdGlvbgogICAgCXdvcmRzLmVyYXNlKHN0ZDo6cmVtb3ZlX2lmKHdvcmRzLmJlZ2luKCksIHdvcmRzLmVuZCgpLCBbXShjaGFyIGNoKSAKICAgIAkJCQkJeyByZXR1cm4gOjppc3B1bmN0KHN0YXRpY19jYXN0PGludD4oY2gpKTsgfSksIHdvcmRzLmVuZCgpKTsKICAgICAgICBkV29yZHMucHVzaF9iYWNrKHdvcmRzKTsgICAgICAKICAgIH0KICAgIAogICAgLy8gcGFydGl0aW9uIEQgZnJvbSBub24tRCB3b3JkcwogICAgYXV0byBpdGVyID0gc3RkOjpwYXJ0aXRpb24oZFdvcmRzLmJlZ2luKCksIGRXb3Jkcy5lbmQoKSwgW10oY29uc3Qgc3RkOjpzdHJpbmcmIHMpIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcmV0dXJuIHRvdXBwZXIoc1swXSkgPT0gJ0QnOyB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCS8vIG91dHB1dCByZXN1bHRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIHN0ZDo6Y291dCA8PCAiVGhlIG51bWJlciBvZiB3b3JkcyBzdGFydGluZyB3aXRoIEQ6ICIgPDwgc3RkOjpkaXN0YW5jZShkV29yZHMuYmVnaW4oKSwgaXRlcikgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCAiSGVyZSBhcmUgdGhlIHdvcmRzOlxuIjsKICAgIHN0ZDo6Y29weShkV29yZHMuYmVnaW4oKSwgaXRlciwgc3RkOjpvc3RyZWFtX2l0ZXJhdG9yPHN0ZDo6c3RyaW5nPihzdGQ6OmNvdXQsICIgIikpOwogICAgCiAgICBzdGQ6OmNvdXQgPDwgIlxuXG5UaGUgbnVtYmVyIG9mIHdvcmRzIG5vdCBzdGFydGluZyB3aXRoIEQ6ICIgPDwgc3RkOjpkaXN0YW5jZShpdGVyLCBkV29yZHMuZW5kKCkpIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgIkhlcmUgYXJlIHRoZSB3b3JkczpcbiI7CiAgICBzdGQ6OmNvcHkoaXRlciwgZFdvcmRzLmVuZCgpLCBzdGQ6Om9zdHJlYW1faXRlcmF0b3I8c3RkOjpzdHJpbmc+KHN0ZDo6Y291dCwgIiAiKSk7Cn0K
stdin
VGhpcyBjb250YWlucyB3b3JkcyB0aGF0IHN0YXJ0IGRlZmluaXRlbHkgd2l0aCB0aGUgbGV0dGVyIERlZS4gRG8sIERvIG5vdCwgRGVzZXJ0LCBhbmQgZHVtcGxpbmcu
This contains words that start definitely with the letter Dee. Do, Do not, Desert, and dumpling.