#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
				
				 
			
				
			
			
				
	 
VGhpcyBjb250YWlucyB3b3JkcyB0aGF0IHN0YXJ0IGRlZmluaXRlbHkgd2l0aCB0aGUgbGV0dGVyIERlZS4gRG8sIERvIG5vdCwgRGVzZXJ0LCBhbmQgZHVtcGxpbmcu
This contains words that start definitely with the letter Dee. Do, Do not, Desert, and dumpling.